text: //
  // Copyright 2010-2019 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 <AWSCore/AWSNetworking.h>
  #import <AWSCore/AWSModel.h>
  
  NS_ASSUME_NONNULL_BEGIN
  
  FOUNDATION_EXPORT NSString *const AWSConnectErrorDomain;
  
  typedef NS_ENUM(NSInteger, AWSConnectErrorType) {
      AWSConnectErrorUnknown,
      AWSConnectErrorContactNotFound,
      AWSConnectErrorDestinationNotAllowed,
      AWSConnectErrorDuplicateResource,
      AWSConnectErrorInternalService,
      AWSConnectErrorInvalidParameter,
      AWSConnectErrorInvalidRequest,
      AWSConnectErrorLimitExceeded,
      AWSConnectErrorOutboundContactNotPermitted,
      AWSConnectErrorResourceNotFound,
      AWSConnectErrorThrottling,
      AWSConnectErrorUserNotFound,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectChannel) {
      AWSConnectChannelUnknown,
      AWSConnectChannelVoice,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectComparison) {
      AWSConnectComparisonUnknown,
      AWSConnectComparisonLT,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectContactFlowType) {
      AWSConnectContactFlowTypeUnknown,
      AWSConnectContactFlowTypeContactFlow,
      AWSConnectContactFlowTypeCustomerQueue,
      AWSConnectContactFlowTypeCustomerHold,
      AWSConnectContactFlowTypeCustomerWhisper,
      AWSConnectContactFlowTypeAgentHold,
      AWSConnectContactFlowTypeAgentWhisper,
      AWSConnectContactFlowTypeOutboundWhisper,
      AWSConnectContactFlowTypeAgentTransfer,
      AWSConnectContactFlowTypeQueueTransfer,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectCurrentMetricName) {
      AWSConnectCurrentMetricNameUnknown,
      AWSConnectCurrentMetricNameAgentsOnline,
      AWSConnectCurrentMetricNameAgentsAvailable,
      AWSConnectCurrentMetricNameAgentsOnCall,
      AWSConnectCurrentMetricNameAgentsNonProductive,
      AWSConnectCurrentMetricNameAgentsAfterContactWork,
      AWSConnectCurrentMetricNameAgentsError,
      AWSConnectCurrentMetricNameAgentsStaffed,
      AWSConnectCurrentMetricNameContactsInQueue,
      AWSConnectCurrentMetricNameOldestContactAge,
      AWSConnectCurrentMetricNameContactsScheduled,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectGrouping) {
      AWSConnectGroupingUnknown,
      AWSConnectGroupingQueue,
      AWSConnectGroupingChannel,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectHistoricalMetricName) {
      AWSConnectHistoricalMetricNameUnknown,
      AWSConnectHistoricalMetricNameContactsQueued,
      AWSConnectHistoricalMetricNameContactsHandled,
      AWSConnectHistoricalMetricNameContactsAbandoned,
      AWSConnectHistoricalMetricNameContactsConsulted,
      AWSConnectHistoricalMetricNameContactsAgentHungUpFirst,
      AWSConnectHistoricalMetricNameContactsHandledIncoming,
      AWSConnectHistoricalMetricNameContactsHandledOutbound,
      AWSConnectHistoricalMetricNameContactsHoldAbandons,
      AWSConnectHistoricalMetricNameContactsTransferredIn,
      AWSConnectHistoricalMetricNameContactsTransferredOut,
      AWSConnectHistoricalMetricNameContactsTransferredInFromQueue,
      AWSConnectHistoricalMetricNameContactsTransferredOutFromQueue,
      AWSConnectHistoricalMetricNameContactsMissed,
      AWSConnectHistoricalMetricNameCallbackContactsHandled,
      AWSConnectHistoricalMetricNameApiContactsHandled,
      AWSConnectHistoricalMetricNameOccupancy,
      AWSConnectHistoricalMetricNameHandleTime,
      AWSConnectHistoricalMetricNameAfterContactWorkTime,
      AWSConnectHistoricalMetricNameQueuedTime,
      AWSConnectHistoricalMetricNameAbandonTime,
      AWSConnectHistoricalMetricNameQueueAnswerTime,
      AWSConnectHistoricalMetricNameHoldTime,
      AWSConnectHistoricalMetricNameInteractionTime,
      AWSConnectHistoricalMetricNameInteractionAndHoldTime,
      AWSConnectHistoricalMetricNameServiceLevel,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectPhoneNumberCountryCode) {
      AWSConnectPhoneNumberCountryCodeUnknown,
      AWSConnectPhoneNumberCountryCodeAf,
      AWSConnectPhoneNumberCountryCodeAl,
      AWSConnectPhoneNumberCountryCodeDz,
      AWSConnectPhoneNumberCountryCodeAs,
      AWSConnectPhoneNumberCountryCodeAd,
      AWSConnectPhoneNumberCountryCodeAo,
      AWSConnectPhoneNumberCountryCodeAi,
      AWSConnectPhoneNumberCountryCodeAq,
      AWSConnectPhoneNumberCountryCodeAg,
      AWSConnectPhoneNumberCountryCodeAr,
      AWSConnectPhoneNumberCountryCodeAm,
      AWSConnectPhoneNumberCountryCodeAw,
      AWSConnectPhoneNumberCountryCodeAu,
      AWSConnectPhoneNumberCountryCodeAt,
      AWSConnectPhoneNumberCountryCodeAz,
      AWSConnectPhoneNumberCountryCodeBs,
      AWSConnectPhoneNumberCountryCodeBh,
      AWSConnectPhoneNumberCountryCodeBd,
      AWSConnectPhoneNumberCountryCodeBb,
      AWSConnectPhoneNumberCountryCodeBy,
      AWSConnectPhoneNumberCountryCodeBe,
      AWSConnectPhoneNumberCountryCodeBz,
      AWSConnectPhoneNumberCountryCodeBj,
      AWSConnectPhoneNumberCountryCodeBm,
      AWSConnectPhoneNumberCountryCodeBt,
      AWSConnectPhoneNumberCountryCodeBo,
      AWSConnectPhoneNumberCountryCodeBa,
      AWSConnectPhoneNumberCountryCodeBw,
      AWSConnectPhoneNumberCountryCodeBr,
      AWSConnectPhoneNumberCountryCodeIo,
      AWSConnectPhoneNumberCountryCodeVg,
      AWSConnectPhoneNumberCountryCodeBn,
      AWSConnectPhoneNumberCountryCodeBg,
      AWSConnectPhoneNumberCountryCodeBf,
      AWSConnectPhoneNumberCountryCodeBi,
      AWSConnectPhoneNumberCountryCodeKh,
      AWSConnectPhoneNumberCountryCodeCm,
      AWSConnectPhoneNumberCountryCodeCa,
      AWSConnectPhoneNumberCountryCodeCv,
      AWSConnectPhoneNumberCountryCodeKy,
      AWSConnectPhoneNumberCountryCodeCf,
      AWSConnectPhoneNumberCountryCodeTd,
      AWSConnectPhoneNumberCountryCodeCl,
      AWSConnectPhoneNumberCountryCodeCn,
      AWSConnectPhoneNumberCountryCodeCx,
      AWSConnectPhoneNumberCountryCodeCc,
      AWSConnectPhoneNumberCountryCodeCo,
      AWSConnectPhoneNumberCountryCodeKm,
      AWSConnectPhoneNumberCountryCodeCk,
      AWSConnectPhoneNumberCountryCodeCr,
      AWSConnectPhoneNumberCountryCodeHr,
      AWSConnectPhoneNumberCountryCodeCu,
      AWSConnectPhoneNumberCountryCodeCw,
      AWSConnectPhoneNumberCountryCodeCy,
      AWSConnectPhoneNumberCountryCodeCz,
      AWSConnectPhoneNumberCountryCodeCd,
      AWSConnectPhoneNumberCountryCodeDk,
      AWSConnectPhoneNumberCountryCodeDj,
      AWSConnectPhoneNumberCountryCodeDm,
      AWSConnectPhoneNumberCountryCodeDo,
      AWSConnectPhoneNumberCountryCodeTl,
      AWSConnectPhoneNumberCountryCodeEc,
      AWSConnectPhoneNumberCountryCodeEg,
      AWSConnectPhoneNumberCountryCodeSv,
      AWSConnectPhoneNumberCountryCodeGq,
      AWSConnectPhoneNumberCountryCodeEr,
      AWSConnectPhoneNumberCountryCodeEe,
      AWSConnectPhoneNumberCountryCodeEt,
      AWSConnectPhoneNumberCountryCodeFk,
      AWSConnectPhoneNumberCountryCodeFo,
      AWSConnectPhoneNumberCountryCodeFj,
      AWSConnectPhoneNumberCountryCodeFi,
      AWSConnectPhoneNumberCountryCodeFr,
      AWSConnectPhoneNumberCountryCodePf,
      AWSConnectPhoneNumberCountryCodeGa,
      AWSConnectPhoneNumberCountryCodeGm,
      AWSConnectPhoneNumberCountryCodeGE,
      AWSConnectPhoneNumberCountryCodeDe,
      AWSConnectPhoneNumberCountryCodeGh,
      AWSConnectPhoneNumberCountryCodeGi,
      AWSConnectPhoneNumberCountryCodeGr,
      AWSConnectPhoneNumberCountryCodeGl,
      AWSConnectPhoneNumberCountryCodeGd,
      AWSConnectPhoneNumberCountryCodeGu,
      AWSConnectPhoneNumberCountryCodeGT,
      AWSConnectPhoneNumberCountryCodeGg,
      AWSConnectPhoneNumberCountryCodeGn,
      AWSConnectPhoneNumberCountryCodeGw,
      AWSConnectPhoneNumberCountryCodeGy,
      AWSConnectPhoneNumberCountryCodeHt,
      AWSConnectPhoneNumberCountryCodeHn,
      AWSConnectPhoneNumberCountryCodeHk,
      AWSConnectPhoneNumberCountryCodeHu,
      AWSConnectPhoneNumberCountryCodeIs,
      AWSConnectPhoneNumberCountryCodeIN,
      AWSConnectPhoneNumberCountryCodeId,
      AWSConnectPhoneNumberCountryCodeIr,
      AWSConnectPhoneNumberCountryCodeIq,
      AWSConnectPhoneNumberCountryCodeIe,
      AWSConnectPhoneNumberCountryCodeIm,
      AWSConnectPhoneNumberCountryCodeIl,
      AWSConnectPhoneNumberCountryCodeIt,
      AWSConnectPhoneNumberCountryCodeCi,
      AWSConnectPhoneNumberCountryCodeJm,
      AWSConnectPhoneNumberCountryCodeJp,
      AWSConnectPhoneNumberCountryCodeJe,
      AWSConnectPhoneNumberCountryCodeJo,
      AWSConnectPhoneNumberCountryCodeKz,
      AWSConnectPhoneNumberCountryCodeKe,
      AWSConnectPhoneNumberCountryCodeKi,
      AWSConnectPhoneNumberCountryCodeKw,
      AWSConnectPhoneNumberCountryCodeKg,
      AWSConnectPhoneNumberCountryCodeLa,
      AWSConnectPhoneNumberCountryCodeLv,
      AWSConnectPhoneNumberCountryCodeLb,
      AWSConnectPhoneNumberCountryCodeLs,
      AWSConnectPhoneNumberCountryCodeLr,
      AWSConnectPhoneNumberCountryCodeLy,
      AWSConnectPhoneNumberCountryCodeLi,
      AWSConnectPhoneNumberCountryCodeLT,
      AWSConnectPhoneNumberCountryCodeLu,
      AWSConnectPhoneNumberCountryCodeMo,
      AWSConnectPhoneNumberCountryCodeMk,
      AWSConnectPhoneNumberCountryCodeMg,
      AWSConnectPhoneNumberCountryCodeMw,
      AWSConnectPhoneNumberCountryCodeMy,
      AWSConnectPhoneNumberCountryCodeMv,
      AWSConnectPhoneNumberCountryCodeMl,
      AWSConnectPhoneNumberCountryCodeMt,
      AWSConnectPhoneNumberCountryCodeMh,
      AWSConnectPhoneNumberCountryCodeMr,
      AWSConnectPhoneNumberCountryCodeMu,
      AWSConnectPhoneNumberCountryCodeYt,
      AWSConnectPhoneNumberCountryCodeMx,
      AWSConnectPhoneNumberCountryCodeFm,
      AWSConnectPhoneNumberCountryCodeMd,
      AWSConnectPhoneNumberCountryCodeMc,
      AWSConnectPhoneNumberCountryCodeMn,
      AWSConnectPhoneNumberCountryCodeMe,
      AWSConnectPhoneNumberCountryCodeMs,
      AWSConnectPhoneNumberCountryCodeMa,
      AWSConnectPhoneNumberCountryCodeMz,
      AWSConnectPhoneNumberCountryCodeMm,
      AWSConnectPhoneNumberCountryCodeNa,
      AWSConnectPhoneNumberCountryCodeNr,
      AWSConnectPhoneNumberCountryCodeNp,
      AWSConnectPhoneNumberCountryCodeNl,
      AWSConnectPhoneNumberCountryCodeAn,
      AWSConnectPhoneNumberCountryCodeNc,
      AWSConnectPhoneNumberCountryCodeNz,
      AWSConnectPhoneNumberCountryCodeNi,
      AWSConnectPhoneNumberCountryCodeNE,
      AWSConnectPhoneNumberCountryCodeNg,
      AWSConnectPhoneNumberCountryCodeNu,
      AWSConnectPhoneNumberCountryCodeKp,
      AWSConnectPhoneNumberCountryCodeMp,
      AWSConnectPhoneNumberCountryCodeNo,
      AWSConnectPhoneNumberCountryCodeOm,
      AWSConnectPhoneNumberCountryCodePk,
      AWSConnectPhoneNumberCountryCodePw,
      AWSConnectPhoneNumberCountryCodePa,
      AWSConnectPhoneNumberCountryCodePg,
      AWSConnectPhoneNumberCountryCodePy,
      AWSConnectPhoneNumberCountryCodePe,
      AWSConnectPhoneNumberCountryCodePh,
      AWSConnectPhoneNumberCountryCodePn,
      AWSConnectPhoneNumberCountryCodePl,
      AWSConnectPhoneNumberCountryCodePt,
      AWSConnectPhoneNumberCountryCodePr,
      AWSConnectPhoneNumberCountryCodeQa,
      AWSConnectPhoneNumberCountryCodeCg,
      AWSConnectPhoneNumberCountryCodeRe,
      AWSConnectPhoneNumberCountryCodeRo,
      AWSConnectPhoneNumberCountryCodeRu,
      AWSConnectPhoneNumberCountryCodeRw,
      AWSConnectPhoneNumberCountryCodeBl,
      AWSConnectPhoneNumberCountryCodeSh,
      AWSConnectPhoneNumberCountryCodeKn,
      AWSConnectPhoneNumberCountryCodeLc,
      AWSConnectPhoneNumberCountryCodeMf,
      AWSConnectPhoneNumberCountryCodePm,
      AWSConnectPhoneNumberCountryCodeVc,
      AWSConnectPhoneNumberCountryCodeWs,
      AWSConnectPhoneNumberCountryCodeSm,
      AWSConnectPhoneNumberCountryCodeSt,
      AWSConnectPhoneNumberCountryCodeSa,
      AWSConnectPhoneNumberCountryCodeSn,
      AWSConnectPhoneNumberCountryCodeRs,
      AWSConnectPhoneNumberCountryCodeSc,
      AWSConnectPhoneNumberCountryCodeSl,
      AWSConnectPhoneNumberCountryCodeSg,
      AWSConnectPhoneNumberCountryCodeSx,
      AWSConnectPhoneNumberCountryCodeSk,
      AWSConnectPhoneNumberCountryCodeSi,
      AWSConnectPhoneNumberCountryCodeSb,
      AWSConnectPhoneNumberCountryCodeSo,
      AWSConnectPhoneNumberCountryCodeZa,
      AWSConnectPhoneNumberCountryCodeKr,
      AWSConnectPhoneNumberCountryCodeEs,
      AWSConnectPhoneNumberCountryCodeLk,
      AWSConnectPhoneNumberCountryCodeSd,
      AWSConnectPhoneNumberCountryCodeSr,
      AWSConnectPhoneNumberCountryCodeSj,
      AWSConnectPhoneNumberCountryCodeSz,
      AWSConnectPhoneNumberCountryCodeSe,
      AWSConnectPhoneNumberCountryCodeCh,
      AWSConnectPhoneNumberCountryCodeSy,
      AWSConnectPhoneNumberCountryCodeTw,
      AWSConnectPhoneNumberCountryCodeTj,
      AWSConnectPhoneNumberCountryCodeTz,
      AWSConnectPhoneNumberCountryCodeTh,
      AWSConnectPhoneNumberCountryCodeTg,
      AWSConnectPhoneNumberCountryCodeTk,
      AWSConnectPhoneNumberCountryCodeTo,
      AWSConnectPhoneNumberCountryCodeTt,
      AWSConnectPhoneNumberCountryCodeTn,
      AWSConnectPhoneNumberCountryCodeTr,
      AWSConnectPhoneNumberCountryCodeTm,
      AWSConnectPhoneNumberCountryCodeTc,
      AWSConnectPhoneNumberCountryCodeTv,
      AWSConnectPhoneNumberCountryCodeVi,
      AWSConnectPhoneNumberCountryCodeUg,
      AWSConnectPhoneNumberCountryCodeUa,
      AWSConnectPhoneNumberCountryCodeAe,
      AWSConnectPhoneNumberCountryCodeGb,
      AWSConnectPhoneNumberCountryCodeUs,
      AWSConnectPhoneNumberCountryCodeUy,
      AWSConnectPhoneNumberCountryCodeUz,
      AWSConnectPhoneNumberCountryCodeVu,
      AWSConnectPhoneNumberCountryCodeVa,
      AWSConnectPhoneNumberCountryCodeVe,
      AWSConnectPhoneNumberCountryCodeVn,
      AWSConnectPhoneNumberCountryCodeWf,
      AWSConnectPhoneNumberCountryCodeEh,
      AWSConnectPhoneNumberCountryCodeYe,
      AWSConnectPhoneNumberCountryCodeZm,
      AWSConnectPhoneNumberCountryCodeZw,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectPhoneNumberType) {
      AWSConnectPhoneNumberTypeUnknown,
      AWSConnectPhoneNumberTypeTollFree,
      AWSConnectPhoneNumberTypeDid,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectPhoneType) {
      AWSConnectPhoneTypeUnknown,
      AWSConnectPhoneTypeSoftPhone,
      AWSConnectPhoneTypeDeskPhone,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectQueueType) {
      AWSConnectQueueTypeUnknown,
      AWSConnectQueueTypeStandard,
      AWSConnectQueueTypeAgent,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectStatistic) {
      AWSConnectStatisticUnknown,
      AWSConnectStatisticSum,
      AWSConnectStatisticMax,
      AWSConnectStatisticAvg,
  };
  
  typedef NS_ENUM(NSInteger, AWSConnectUnit) {
      AWSConnectUnitUnknown,
      AWSConnectUnitSeconds,
      AWSConnectUnitCount,
      AWSConnectUnitPercent,
  };
  
  @class AWSConnectContactFlowSummary;
  @class AWSConnectCreateUserRequest;
  @class AWSConnectCreateUserResponse;
  @class AWSConnectCredentials;
  @class AWSConnectCurrentMetric;
  @class AWSConnectCurrentMetricData;
  @class AWSConnectCurrentMetricResult;
  @class AWSConnectDeleteUserRequest;
  @class AWSConnectDescribeUserHierarchyGroupRequest;
  @class AWSConnectDescribeUserHierarchyGroupResponse;
  @class AWSConnectDescribeUserHierarchyStructureRequest;
  @class AWSConnectDescribeUserHierarchyStructureResponse;
  @class AWSConnectDescribeUserRequest;
  @class AWSConnectDescribeUserResponse;
  @class AWSConnectDimensions;
  @class AWSConnectFilters;
  @class AWSConnectGetContactAttributesRequest;
  @class AWSConnectGetContactAttributesResponse;
  @class AWSConnectGetCurrentMetricDataRequest;
  @class AWSConnectGetCurrentMetricDataResponse;
  @class AWSConnectGetFederationTokenRequest;
  @class AWSConnectGetFederationTokenResponse;
  @class AWSConnectGetMetricDataRequest;
  @class AWSConnectGetMetricDataResponse;
  @class AWSConnectHierarchyGroup;
  @class AWSConnectHierarchyGroupSummary;
  @class AWSConnectHierarchyLevel;
  @class AWSConnectHierarchyPath;
  @class AWSConnectHierarchyStructure;
  @class AWSConnectHistoricalMetric;
  @class AWSConnectHistoricalMetricData;
  @class AWSConnectHistoricalMetricResult;
  @class AWSConnectHoursOfOperationSummary;
  @class AWSConnectListContactFlowsRequest;
  @class AWSConnectListContactFlowsResponse;
  @class AWSConnectListHoursOfOperationsRequest;
  @class AWSConnectListHoursOfOperationsResponse;
  @class AWSConnectListPhoneNumbersRequest;
  @class AWSConnectListPhoneNumbersResponse;
  @class AWSConnectListQueuesRequest;
  @class AWSConnectListQueuesResponse;
  @class AWSConnectListRoutingProfilesRequest;
  @class AWSConnectListRoutingProfilesResponse;
  @class AWSConnectListSecurityProfilesRequest;
  @class AWSConnectListSecurityProfilesResponse;
  @class AWSConnectListUserHierarchyGroupsRequest;
  @class AWSConnectListUserHierarchyGroupsResponse;
  @class AWSConnectListUsersRequest;
  @class AWSConnectListUsersResponse;
  @class AWSConnectPhoneNumberSummary;
  @class AWSConnectQueueReference;
  @class AWSConnectQueueSummary;
  @class AWSConnectRoutingProfileSummary;
  @class AWSConnectSecurityProfileSummary;
  @class AWSConnectStartOutboundVoiceContactRequest;
  @class AWSConnectStartOutboundVoiceContactResponse;
  @class AWSConnectStopContactRequest;
  @class AWSConnectStopContactResponse;
  @class AWSConnectThreshold;
  @class AWSConnectUpdateContactAttributesRequest;
  @class AWSConnectUpdateContactAttributesResponse;
  @class AWSConnectUpdateUserHierarchyRequest;
  @class AWSConnectUpdateUserIdentityInfoRequest;
  @class AWSConnectUpdateUserPhoneConfigRequest;
  @class AWSConnectUpdateUserRoutingProfileRequest;
  @class AWSConnectUpdateUserSecurityProfilesRequest;
  @class AWSConnectUser;
  @class AWSConnectUserIdentityInfo;
  @class AWSConnectUserPhoneConfig;
  @class AWSConnectUserSummary;
  
  /**
   <p>Contains summary information about a contact flow.</p>
   */
  @interface AWSConnectContactFlowSummary : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the contact flow.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The type of contact flow.</p>
   */
  @property (nonatomic, assign) AWSConnectContactFlowType contactFlowType;
  
  /**
   <p>The identifier of the contact flow.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The name of the contact flow.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable name;
  
  @end
  
  /**
   
   */
  @interface AWSConnectCreateUserRequest : AWSRequest
  
  
  /**
   <p>The identifier of the user account in the directory used for identity management. If Amazon Connect cannot access the directory, you can specify this identifier to authenticate users. If you include the identifier, we assume that Amazon Connect cannot access the directory. Otherwise, the identity information is used to authenticate users from your directory.</p><p>This parameter is required if you are using an existing directory for identity management in Amazon Connect when Amazon Connect cannot access your directory to authenticate users. If you are using SAML for identity management and include this parameter, an error is returned.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable directoryUserId;
  
  /**
   <p>The identifier of the hierarchy group for the user.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable hierarchyGroupId;
  
  /**
   <p>The information about the identity of the user.</p>
   */
  @property (nonatomic, strong) AWSConnectUserIdentityInfo * _Nullable identityInfo;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable password;
  
  /**
   <p>The phone settings for the user.</p>
   */
  @property (nonatomic, strong) AWSConnectUserPhoneConfig * _Nullable phoneConfig;
  
  /**
   <p>The identifier of the routing profile for the user.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable routingProfileId;
  
  /**
   <p>The identifier of the security profile for the user.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable securityProfileIds;
  
  /**
   <p>The user name for the account. For instances not using SAML for identity management, the user name can include up to 20 characters. If you are using SAML for identity management, the user name can include up to 64 characters from [a-zA-Z0-9_-.\@]+.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable username;
  
  @end
  
  /**
   
   */
  @interface AWSConnectCreateUserResponse : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userArn;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userId;
  
  @end
  
  /**
   <p>Contains credentials to use for federation.</p>
   */
  @interface AWSConnectCredentials : AWSModel
  
  
  /**
   <p>An access token generated for a federated user to access Amazon Connect.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable accessToken;
  
  /**
   <p>A token generated with an expiration time for the session a user is logged in to Amazon Connect.</p>
   */
  @property (nonatomic, strong) NSDate * _Nullable accessTokenExpiration;
  
  /**
   <p>Renews a token generated for a user to access the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable refreshToken;
  
  /**
   <p>Renews the expiration timer for a generated token.</p>
   */
  @property (nonatomic, strong) NSDate * _Nullable refreshTokenExpiration;
  
  @end
  
  /**
   <p>Contains information about a real-time metric.</p>
   */
  @interface AWSConnectCurrentMetric : AWSModel
  
  
  /**
   <p>The name of the metric.</p>
   */
  @property (nonatomic, assign) AWSConnectCurrentMetricName name;
  
  /**
   <p>The unit for the metric.</p>
   */
  @property (nonatomic, assign) AWSConnectUnit unit;
  
  @end
  
  /**
   <p>Contains the data for a real-time metric.</p>
   */
  @interface AWSConnectCurrentMetricData : AWSModel
  
  
  /**
   <p>Information about the metric.</p>
   */
  @property (nonatomic, strong) AWSConnectCurrentMetric * _Nullable metric;
  
  /**
   <p>The value of the metric.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable value;
  
  @end
  
  /**
   <p>Contains information about a set of real-time metrics.</p>
   */
  @interface AWSConnectCurrentMetricResult : AWSModel
  
  
  /**
   <p>The set of metrics.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectCurrentMetricData *> * _Nullable collections;
  
  /**
   <p>The dimensions for the metrics.</p>
   */
  @property (nonatomic, strong) AWSConnectDimensions * _Nullable dimensions;
  
  @end
  
  /**
   
   */
  @interface AWSConnectDeleteUserRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The identifier of the user.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectDescribeUserHierarchyGroupRequest : AWSRequest
  
  
  /**
   <p>The identifier of the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable hierarchyGroupId;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectDescribeUserHierarchyGroupResponse : AWSModel
  
  
  /**
   <p>Information about the hierarchy group.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyGroup * _Nullable hierarchyGroup;
  
  @end
  
  /**
   
   */
  @interface AWSConnectDescribeUserHierarchyStructureRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectDescribeUserHierarchyStructureResponse : AWSModel
  
  
  /**
   <p>Information about the hierarchy structure.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyStructure * _Nullable hierarchyStructure;
  
  @end
  
  /**
   
   */
  @interface AWSConnectDescribeUserRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectDescribeUserResponse : AWSModel
  
  
  /**
   <p>Information about the user account and configuration settings.</p>
   */
  @property (nonatomic, strong) AWSConnectUser * _Nullable user;
  
  @end
  
  /**
   <p>Contains information about the dimensions for a set of metrics.</p>
   */
  @interface AWSConnectDimensions : AWSModel
  
  
  /**
   <p>The channel used for grouping and filters.</p>
   */
  @property (nonatomic, assign) AWSConnectChannel channel;
  
  /**
   <p>Information about the queue for which metrics are returned.</p>
   */
  @property (nonatomic, strong) AWSConnectQueueReference * _Nullable queue;
  
  @end
  
  /**
   <p>Contains the filter to apply when retrieving metrics.</p>
   */
  @interface AWSConnectFilters : AWSModel
  
  
  /**
   <p>The channel to use to filter the metrics.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable channels;
  
  /**
   <p>The queues to use to filter the metrics. You can specify up to 100 queues per request.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable queues;
  
  @end
  
  /**
   
   */
  @interface AWSConnectGetContactAttributesRequest : AWSRequest
  
  
  /**
   <p>The identifier of the initial contact.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable initialContactId;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectGetContactAttributesResponse : AWSModel
  
  
  /**
   <p>Information about the attributes.</p>
   */
  @property (nonatomic, strong) NSDictionary<NSString *, NSString *> * _Nullable attributes;
  
  @end
  
  /**
   
   */
  @interface AWSConnectGetCurrentMetricDataRequest : AWSRequest
  
  
  /**
   <p>The metrics to retrieve. Specify the name and unit for each metric. The following metrics are available:</p><dl><dt>AGENTS_AFTER_CONTACT_WORK</dt><dd><p>Unit: COUNT</p></dd><dt>AGENTS_AVAILABLE</dt><dd><p>Unit: COUNT</p></dd><dt>AGENTS_ERROR</dt><dd><p>Unit: COUNT</p></dd><dt>AGENTS_NON_PRODUCTIVE</dt><dd><p>Unit: COUNT</p></dd><dt>AGENTS_ON_CALL</dt><dd><p>Unit: COUNT</p></dd><dt>AGENTS_ONLINE</dt><dd><p>Unit: COUNT</p></dd><dt>AGENTS_STAFFED</dt><dd><p>Unit: COUNT</p></dd><dt>CONTACTS_IN_QUEUE</dt><dd><p>Unit: COUNT</p></dd><dt>CONTACTS_SCHEDULED</dt><dd><p>Unit: COUNT</p></dd><dt>OLDEST_CONTACT_AGE</dt><dd><p>Unit: SECONDS</p></dd></dl>
   */
  @property (nonatomic, strong) NSArray<AWSConnectCurrentMetric *> * _Nullable currentMetrics;
  
  /**
   <p>The queues, up to 100, or channels, to use to filter the metrics returned. Metric data is retrieved only for the resources associated with the queues or channels included in the filter. You can include both queue IDs and queue ARNs in the same request. The only supported channel is <code>VOICE</code>.</p>
   */
  @property (nonatomic, strong) AWSConnectFilters * _Nullable filters;
  
  /**
   <p>The grouping applied to the metrics returned. For example, when grouped by <code>QUEUE</code>, the metrics returned apply to each queue rather than aggregated for all queues. If you group by <code>CHANNEL</code>, you should include a Channels filter. The only supported channel is <code>VOICE</code>.</p><p>If no <code>Grouping</code> is included in the request, a summary of metrics is returned.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable groupings;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p><p>The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectGetCurrentMetricDataResponse : AWSModel
  
  
  /**
   <p>The time at which the metrics were retrieved and cached for pagination.</p>
   */
  @property (nonatomic, strong) NSDate * _Nullable dataSnapshotTime;
  
  /**
   <p>Information about the real-time metrics.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectCurrentMetricResult *> * _Nullable metricResults;
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p><p>The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectGetFederationTokenRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectGetFederationTokenResponse : AWSModel
  
  
  /**
   <p>The credentials to use for federation.</p>
   */
  @property (nonatomic, strong) AWSConnectCredentials * _Nullable credentials;
  
  @end
  
  /**
   
   */
  @interface AWSConnectGetMetricDataRequest : AWSRequest
  
  
  /**
   <p>The timestamp, in UNIX Epoch time format, at which to end the reporting interval for the retrieval of historical metrics data. The time must be specified using an interval of 5 minutes, such as 11:00, 11:05, 11:10, and must be later than the start time timestamp.</p><p>The time range between the start and end time must be less than 24 hours.</p>
   */
  @property (nonatomic, strong) NSDate * _Nullable endTime;
  
  /**
   <p>The queues, up to 100, or channels, to use to filter the metrics returned. Metric data is retrieved only for the resources associated with the queues or channels included in the filter. You can include both queue IDs and queue ARNs in the same request. The only supported channel is <code>VOICE</code>.</p>
   */
  @property (nonatomic, strong) AWSConnectFilters * _Nullable filters;
  
  /**
   <p>The grouping applied to the metrics returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values returned apply to the metrics for each queue rather than aggregated for all queues.</p><p>The only supported grouping is <code>QUEUE</code>.</p><p>If no grouping is specified, a summary of metrics for all queues is returned.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable groupings;
  
  /**
   <p>The metrics to retrieve. Specify the name, unit, and statistic for each metric. The following historical metrics are available:</p><dl><dt>ABANDON_TIME</dt><dd><p>Unit: SECONDS</p><p>Statistic: AVG</p></dd><dt>AFTER_CONTACT_WORK_TIME</dt><dd><p>Unit: SECONDS</p><p>Statistic: AVG</p></dd><dt>API_CONTACTS_HANDLED</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CALLBACK_CONTACTS_HANDLED</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_ABANDONED</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_AGENT_HUNG_UP_FIRST</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_CONSULTED</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_HANDLED</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_HANDLED_INCOMING</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_HANDLED_OUTBOUND</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_HOLD_ABANDONS</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_MISSED</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_QUEUED</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_TRANSFERRED_IN</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_TRANSFERRED_IN_FROM_QUEUE</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_TRANSFERRED_OUT</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>CONTACTS_TRANSFERRED_OUT_FROM_QUEUE</dt><dd><p>Unit: COUNT</p><p>Statistic: SUM</p></dd><dt>HANDLE_TIME</dt><dd><p>Unit: SECONDS</p><p>Statistic: AVG</p></dd><dt>HOLD_TIME</dt><dd><p>Unit: SECONDS</p><p>Statistic: AVG</p></dd><dt>INTERACTION_AND_HOLD_TIME</dt><dd><p>Unit: SECONDS</p><p>Statistic: AVG</p></dd><dt>INTERACTION_TIME</dt><dd><p>Unit: SECONDS</p><p>Statistic: AVG</p></dd><dt>OCCUPANCY</dt><dd><p>Unit: PERCENT</p><p>Statistic: AVG</p></dd><dt>QUEUE_ANSWER_TIME</dt><dd><p>Unit: SECONDS</p><p>Statistic: AVG</p></dd><dt>QUEUED_TIME</dt><dd><p>Unit: SECONDS</p><p>Statistic: MAX</p></dd><dt>SERVICE_LEVEL</dt><dd><p>Unit: PERCENT</p><p>Statistic: AVG</p><p>Threshold: Only "Less than" comparisons are supported, with the following service level thresholds: 15, 20, 25, 30, 45, 60, 90, 120, 180, 240, 300, 600</p></dd></dl>
   */
  @property (nonatomic, strong) NSArray<AWSConnectHistoricalMetric *> * _Nullable historicalMetrics;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>The timestamp, in UNIX Epoch time format, at which to start the reporting interval for the retrieval of historical metrics data. The time must be specified using a multiple of 5 minutes, such as 10:05, 10:10, 10:15.</p><p>The start time cannot be earlier than 24 hours before the time of the request. Historical metrics are available only for 24 hours.</p>
   */
  @property (nonatomic, strong) NSDate * _Nullable startTime;
  
  @end
  
  /**
   
   */
  @interface AWSConnectGetMetricDataResponse : AWSModel
  
  
  /**
   <p>Information about the historical metrics.</p><p>If no grouping is specified, a summary of metric data is returned.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectHistoricalMetricResult *> * _Nullable metricResults;
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p><p>The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   <p>Contains information about a hierarchy group.</p>
   */
  @interface AWSConnectHierarchyGroup : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>Information about the levels in the hierarchy group.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyPath * _Nullable hierarchyPath;
  
  /**
   <p>The identifier of the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The identifier of the level in the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable levelId;
  
  /**
   <p>The name of the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable name;
  
  @end
  
  /**
   <p>Contains summary information about a hierarchy group.</p>
   */
  @interface AWSConnectHierarchyGroupSummary : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The name of the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable name;
  
  @end
  
  /**
   <p>Contains information about a hierarchy level.</p>
   */
  @interface AWSConnectHierarchyLevel : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the hierarchy level.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the hierarchy level.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The name of the hierarchy level.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable name;
  
  @end
  
  /**
   <p>Contains information about the levels of a hierarchy group.</p>
   */
  @interface AWSConnectHierarchyPath : AWSModel
  
  
  /**
   <p>Information about level five.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyGroupSummary * _Nullable levelFive;
  
  /**
   <p>Information about level four.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyGroupSummary * _Nullable levelFour;
  
  /**
   <p>Information about level one.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyGroupSummary * _Nullable levelOne;
  
  /**
   <p>Information about level three.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyGroupSummary * _Nullable levelThree;
  
  /**
   <p>Information about level two.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyGroupSummary * _Nullable levelTwo;
  
  @end
  
  /**
   <p>Contains information about a hierarchy structure.</p>
   */
  @interface AWSConnectHierarchyStructure : AWSModel
  
  
  /**
   <p>Information about level five.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyLevel * _Nullable levelFive;
  
  /**
   <p>Information about level four.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyLevel * _Nullable levelFour;
  
  /**
   <p>Information about level one.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyLevel * _Nullable levelOne;
  
  /**
   <p>Information about level three.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyLevel * _Nullable levelThree;
  
  /**
   <p>Information about level two.</p>
   */
  @property (nonatomic, strong) AWSConnectHierarchyLevel * _Nullable levelTwo;
  
  @end
  
  /**
   <p>Contains information about a historical metric.</p>
   */
  @interface AWSConnectHistoricalMetric : AWSModel
  
  
  /**
   <p>The name of the metric.</p>
   */
  @property (nonatomic, assign) AWSConnectHistoricalMetricName name;
  
  /**
   <p>The statistic for the metric.</p>
   */
  @property (nonatomic, assign) AWSConnectStatistic statistic;
  
  /**
   <p>The threshold for the metric, used with service level metrics.</p>
   */
  @property (nonatomic, strong) AWSConnectThreshold * _Nullable threshold;
  
  /**
   <p>The unit for the metric.</p>
   */
  @property (nonatomic, assign) AWSConnectUnit unit;
  
  @end
  
  /**
   <p>Contains the data for a historical metric.</p>
   */
  @interface AWSConnectHistoricalMetricData : AWSModel
  
  
  /**
   <p>Information about the metric.</p>
   */
  @property (nonatomic, strong) AWSConnectHistoricalMetric * _Nullable metric;
  
  /**
   <p>The value of the metric.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable value;
  
  @end
  
  /**
   <p>Contains information about the historical metrics retrieved.</p>
   */
  @interface AWSConnectHistoricalMetricResult : AWSModel
  
  
  /**
   <p>The set of metrics.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectHistoricalMetricData *> * _Nullable collections;
  
  /**
   <p>The dimension for the metrics.</p>
   */
  @property (nonatomic, strong) AWSConnectDimensions * _Nullable dimensions;
  
  @end
  
  /**
   <p>Contains summary information about hours of operation for a contact center.</p>
   */
  @interface AWSConnectHoursOfOperationSummary : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the hours of operation.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the hours of operation.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The name of the hours of operation.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable name;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListContactFlowsRequest : AWSRequest
  
  
  /**
   <p>The type of contact flow.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable contactFlowTypes;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListContactFlowsResponse : AWSModel
  
  
  /**
   <p>Information about the contact flows.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectContactFlowSummary *> * _Nullable contactFlowSummaryList;
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListHoursOfOperationsRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListHoursOfOperationsResponse : AWSModel
  
  
  /**
   <p>Information about the hours of operation.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectHoursOfOperationSummary *> * _Nullable hoursOfOperationSummaryList;
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListPhoneNumbersRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>The ISO country code.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable phoneNumberCountryCodes;
  
  /**
   <p>The type of phone number.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable phoneNumberTypes;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListPhoneNumbersResponse : AWSModel
  
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>Information about the phone numbers.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectPhoneNumberSummary *> * _Nullable phoneNumberSummaryList;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListQueuesRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>The type of queue.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable queueTypes;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListQueuesResponse : AWSModel
  
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>Information about the queues.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectQueueSummary *> * _Nullable queueSummaryList;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListRoutingProfilesRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListRoutingProfilesResponse : AWSModel
  
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>Information about the routing profiles.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectRoutingProfileSummary *> * _Nullable routingProfileSummaryList;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListSecurityProfilesRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListSecurityProfilesResponse : AWSModel
  
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>Information about the security profiles.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectSecurityProfileSummary *> * _Nullable securityProfileSummaryList;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListUserHierarchyGroupsRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListUserHierarchyGroupsResponse : AWSModel
  
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>Information about the hierarchy groups.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectHierarchyGroupSummary *> * _Nullable userHierarchyGroupSummaryList;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListUsersRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The maximimum number of results to return per page.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable maxResults;
  
  /**
   <p>The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  @end
  
  /**
   
   */
  @interface AWSConnectListUsersResponse : AWSModel
  
  
  /**
   <p>If there are additional results, this is the token for the next set of results.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable nextToken;
  
  /**
   <p>Information about the users.</p>
   */
  @property (nonatomic, strong) NSArray<AWSConnectUserSummary *> * _Nullable userSummaryList;
  
  @end
  
  /**
   <p>Contains summary information about a phone number for a contact center.</p>
   */
  @interface AWSConnectPhoneNumberSummary : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the phone number.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the phone number.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The phone number.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable phoneNumber;
  
  /**
   <p>The ISO country code.</p>
   */
  @property (nonatomic, assign) AWSConnectPhoneNumberCountryCode phoneNumberCountryCode;
  
  /**
   <p>The type of phone number.</p>
   */
  @property (nonatomic, assign) AWSConnectPhoneNumberType phoneNumberType;
  
  @end
  
  /**
   <p>Contains information about a queue resource for which metrics are returned.</p>
   */
  @interface AWSConnectQueueReference : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the queue.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the queue.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  @end
  
  /**
   <p>Contains summary information about a queue.</p>
   */
  @interface AWSConnectQueueSummary : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the queue.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the queue.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The name of the queue.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable name;
  
  /**
   <p>The type of queue.</p>
   */
  @property (nonatomic, assign) AWSConnectQueueType queueType;
  
  @end
  
  /**
   <p>Contains summary information about a routing profile.</p>
   */
  @interface AWSConnectRoutingProfileSummary : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the routing profile.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the routing profile.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The name of the routing profile.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable name;
  
  @end
  
  /**
   <p>Contains information about a security profile.</p>
   */
  @interface AWSConnectSecurityProfileSummary : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the security profile.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the security profile.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The name of the security profile.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable name;
  
  @end
  
  /**
   
   */
  @interface AWSConnectStartOutboundVoiceContactRequest : AWSRequest
  
  
  /**
   <p>A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in contact flows just like any other contact attributes.</p><p>There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.</p>
   */
  @property (nonatomic, strong) NSDictionary<NSString *, NSString *> * _Nullable attributes;
  
  /**
   <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned. If the contact is disconnected, a new contact is started.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable clientToken;
  
  /**
   <p>The identifier of the contact flow for the outbound call.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable contactFlowId;
  
  /**
   <p>The phone number of the customer, in E.164 format.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable destinationPhoneNumber;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The queue for the call. If you specify a queue, the phone displayed for caller ID is the phone number specified in the queue. If you do not specify a queue, the queue defined in the contact flow is used. If you do not specify a queue, you must specify a source phone number.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable queueId;
  
  /**
   <p>The phone number associated with the Amazon Connect instance, in E.164 format. If you do not specify a source phone number, you must specify a queue.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable sourcePhoneNumber;
  
  @end
  
  /**
   
   */
  @interface AWSConnectStartOutboundVoiceContactResponse : AWSModel
  
  
  /**
   <p>The identifier of this contact within the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable contactId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectStopContactRequest : AWSRequest
  
  
  /**
   <p>The ID of the contact.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable contactId;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectStopContactResponse : AWSModel
  
  
  @end
  
  /**
   <p>Contains information about the threshold for service level metrics.</p>
   */
  @interface AWSConnectThreshold : AWSModel
  
  
  /**
   <p>The type of comparison. Only "less than" (LT) comparisons are supported.</p>
   */
  @property (nonatomic, assign) AWSConnectComparison comparison;
  
  /**
   <p>The threshold value to compare.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable thresholdValue;
  
  @end
  
  /**
   
   */
  @interface AWSConnectUpdateContactAttributesRequest : AWSRequest
  
  
  /**
   <p>The Amazon Connect attributes. These attributes can be accessed in contact flows just like any other contact attributes.</p><p>You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters.</p>
   */
  @property (nonatomic, strong) NSDictionary<NSString *, NSString *> * _Nullable attributes;
  
  /**
   <p>The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable initialContactId;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectUpdateContactAttributesResponse : AWSModel
  
  
  @end
  
  /**
   
   */
  @interface AWSConnectUpdateUserHierarchyRequest : AWSRequest
  
  
  /**
   <p>The identifier of the hierarchy group.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable hierarchyGroupId;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectUpdateUserIdentityInfoRequest : AWSRequest
  
  
  /**
   <p>The identity information for the user.</p>
   */
  @property (nonatomic, strong) AWSConnectUserIdentityInfo * _Nullable identityInfo;
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectUpdateUserPhoneConfigRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>Information about phone configuration settings for the user.</p>
   */
  @property (nonatomic, strong) AWSConnectUserPhoneConfig * _Nullable phoneConfig;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectUpdateUserRoutingProfileRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The identifier of the routing profile for the user.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable routingProfileId;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userId;
  
  @end
  
  /**
   
   */
  @interface AWSConnectUpdateUserSecurityProfilesRequest : AWSRequest
  
  
  /**
   <p>The identifier of the Amazon Connect instance.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable instanceId;
  
  /**
   <p>The identifiers of the security profiles for the user.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable securityProfileIds;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable userId;
  
  @end
  
  /**
   <p>Contains information about a user account for a Amazon Connect instance.</p>
   */
  @interface AWSConnectUser : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the user account in the directory used for identity management.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable directoryUserId;
  
  /**
   <p>The identifier of the hierarchy group for the user.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable hierarchyGroupId;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>Information about the user identity.</p>
   */
  @property (nonatomic, strong) AWSConnectUserIdentityInfo * _Nullable identityInfo;
  
  /**
   <p>Information about the phone configuration for the user.</p>
   */
  @property (nonatomic, strong) AWSConnectUserPhoneConfig * _Nullable phoneConfig;
  
  /**
   <p>The identifier of the routing profile for the user.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable routingProfileId;
  
  /**
   <p>The identifiers of the security profiles for the user.</p>
   */
  @property (nonatomic, strong) NSArray<NSString *> * _Nullable securityProfileIds;
  
  /**
   <p>The user name assigned to the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable username;
  
  @end
  
  /**
   <p>Contains information about the identity of a user.</p>
   */
  @interface AWSConnectUserIdentityInfo : AWSModel
  
  
  /**
   <p>The email address. If you are using SAML for identity management and include this parameter, an error is returned.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable email;
  
  /**
   <p>The first name. This is required if you are using Amazon Connect or SAML for identity management.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable firstName;
  
  /**
   <p>The last name. This is required if you are using Amazon Connect or SAML for identity management.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable lastName;
  
  @end
  
  /**
   <p>Contains information about the phone configuration settings for a user.</p>
   Required parameters: [PhoneType]
   */
  @interface AWSConnectUserPhoneConfig : AWSModel
  
  
  /**
   <p>The After Call Work (ACW) timeout setting, in seconds.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable afterContactWorkTimeLimit;
  
  /**
   <p>The Auto accept setting.</p>
   */
  @property (nonatomic, strong) NSNumber * _Nullable autoAccept;
  
  /**
   <p>The phone number for the user's desk phone.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable deskPhoneNumber;
  
  /**
   <p>The phone type.</p>
   */
  @property (nonatomic, assign) AWSConnectPhoneType phoneType;
  
  @end
  
  /**
   <p>Contains summary information about a user.</p>
   */
  @interface AWSConnectUserSummary : AWSModel
  
  
  /**
   <p>The Amazon Resource Name (ARN) of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable arn;
  
  /**
   <p>The identifier of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable identifier;
  
  /**
   <p>The Amazon Connect user name of the user account.</p>
   */
  @property (nonatomic, strong) NSString * _Nullable username;
  
  @end
  
  NS_ASSUME_NONNULL_END
  