{"note":"OpenAPI conversion -- returning structured metadata","name":"amazonaws-com-workmail","description":"Amazon WorkMail","version":"2017-10-01","base_url":"","endpoints":84,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Amazon WorkMail\n@version 2017-10-01\n@auth AWS SigV4\n@endpoints 84\n@hint download_for_search\n@toc root(84)\n\n@endpoint POST /\n@desc Adds a member (user or group) to the resource's set of delegates.\n@required {OrganizationId: str, ResourceId: str, EntityId: str}\n\n@endpoint POST /\n@desc Adds a member (user or group) to the group's set.\n@required {OrganizationId: str, GroupId: str, MemberId: str}\n\n@endpoint POST /\n@desc Assumes an impersonation role for the given WorkMail organization. This method returns an authentication token you can use to make impersonated calls.\n@required {OrganizationId: str, ImpersonationRoleId: str}\n@returns(200) {Token: str?, ExpiresIn: int(i64)?}\n\n@endpoint POST /\n@desc Cancels a mailbox export job.  If the mailbox export job is near completion, it might not be possible to cancel it.\n@required {ClientToken: str, JobId: str, OrganizationId: str}\n\n@endpoint POST /\n@desc Adds an alias to the set of a given member (user or group) of WorkMail.\n@required {OrganizationId: str, EntityId: str, Alias: str}\n\n@endpoint POST /\n@desc Creates an AvailabilityConfiguration for the given WorkMail organization and domain.\n@required {OrganizationId: str, DomainName: str}\n@optional {ClientToken: str, EwsProvider: EwsAvailabilityProvider, LambdaProvider: LambdaAvailabilityProvider}\n\n@endpoint POST /\n@desc Creates a group that can be used in WorkMail by calling the RegisterToWorkMail operation.\n@required {OrganizationId: str, Name: str}\n@optional {HiddenFromGlobalAddressList: bool}\n@returns(200) {GroupId: str?}\n\n@endpoint POST /\n@desc Creates an impersonation role for the given WorkMail organization.  Idempotency ensures that an API request completes no more than one time. With an idempotent request, if the original request completes successfully, any subsequent retries also complete successfully without performing any further actions.\n@required {OrganizationId: str, Name: str, Type: str, Rules: [ImpersonationRule]}\n@optional {ClientToken: str, Description: str}\n@returns(200) {ImpersonationRoleId: str?}\n\n@endpoint POST /\n@desc Creates a new mobile device access rule for the specified WorkMail organization.\n@required {OrganizationId: str, Name: str, Effect: str}\n@optional {ClientToken: str, Description: str, DeviceTypes: [str], NotDeviceTypes: [str], DeviceModels: [str], NotDeviceModels: [str], DeviceOperatingSystems: [str], NotDeviceOperatingSystems: [str], DeviceUserAgents: [str], NotDeviceUserAgents: [str]}\n@returns(200) {MobileDeviceAccessRuleId: str?}\n\n@endpoint POST /\n@desc Creates a new WorkMail organization. Optionally, you can choose to associate an existing AWS Directory Service directory with your organization. If an AWS Directory Service directory ID is specified, the organization alias must match the directory alias. If you choose not to associate an existing directory with your organization, then we create a new WorkMail directory for you. For more information, see Adding an organization in the WorkMail Administrator Guide. You can associate multiple email domains with an organization, then choose your default email domain from the WorkMail console. You can also associate a domain that is managed in an Amazon Route 53 public hosted zone. For more information, see Adding a domain and Choosing the default domain in the WorkMail Administrator Guide. Optionally, you can use a customer managed key from AWS Key Management Service (AWS KMS) to encrypt email for your organization. If you don't associate an AWS KMS key, WorkMail creates a default, AWS managed key for you.\n@required {Alias: str}\n@optional {DirectoryId: str, ClientToken: str, Domains: [Domain], KmsKeyArn: str, EnableInteroperability: bool}\n@returns(200) {OrganizationId: str?}\n\n@endpoint POST /\n@desc Creates a new WorkMail resource.\n@required {OrganizationId: str, Name: str, Type: str}\n@optional {Description: str, HiddenFromGlobalAddressList: bool}\n@returns(200) {ResourceId: str?}\n\n@endpoint POST /\n@desc Creates a user who can be used in WorkMail by calling the RegisterToWorkMail operation.\n@required {OrganizationId: str, Name: str, DisplayName: str}\n@optional {Password: str, Role: str, FirstName: str, LastName: str, HiddenFromGlobalAddressList: bool}\n@returns(200) {UserId: str?}\n\n@endpoint POST /\n@desc Deletes an access control rule for the specified WorkMail organization.  Deleting already deleted and non-existing rules does not produce an error. In those cases, the service sends back an HTTP 200 response with an empty HTTP body.\n@required {OrganizationId: str, Name: str}\n\n@endpoint POST /\n@desc Remove one or more specified aliases from a set of aliases for a given user.\n@required {OrganizationId: str, EntityId: str, Alias: str}\n\n@endpoint POST /\n@desc Deletes the AvailabilityConfiguration for the given WorkMail organization and domain.\n@required {OrganizationId: str, DomainName: str}\n\n@endpoint POST /\n@desc Deletes the email monitoring configuration for a specified organization.\n@required {OrganizationId: str}\n\n@endpoint POST /\n@desc Deletes a group from WorkMail.\n@required {OrganizationId: str, GroupId: str}\n\n@endpoint POST /\n@desc Deletes an impersonation role for the given WorkMail organization.\n@required {OrganizationId: str, ImpersonationRoleId: str}\n\n@endpoint POST /\n@desc Deletes permissions granted to a member (user or group).\n@required {OrganizationId: str, EntityId: str, GranteeId: str}\n\n@endpoint POST /\n@desc Deletes the mobile device access override for the given WorkMail organization, user, and device.  Deleting already deleted and non-existing overrides does not produce an error. In those cases, the service sends back an HTTP 200 response with an empty HTTP body.\n@required {OrganizationId: str, UserId: str, DeviceId: str}\n\n@endpoint POST /\n@desc Deletes a mobile device access rule for the specified WorkMail organization.  Deleting already deleted and non-existing rules does not produce an error. In those cases, the service sends back an HTTP 200 response with an empty HTTP body.\n@required {OrganizationId: str, MobileDeviceAccessRuleId: str}\n\n@endpoint POST /\n@desc Deletes an WorkMail organization and all underlying AWS resources managed by WorkMail as part of the organization. You can choose whether to delete the associated directory. For more information, see Removing an organization in the WorkMail Administrator Guide.\n@required {OrganizationId: str, DeleteDirectory: bool}\n@optional {ClientToken: str, ForceDelete: bool}\n@returns(200) {OrganizationId: str?, State: str?}\n\n@endpoint POST /\n@desc Deletes the specified resource.\n@required {OrganizationId: str, ResourceId: str}\n\n@endpoint POST /\n@desc Deletes the specified retention policy from the specified organization.\n@required {OrganizationId: str, Id: str}\n\n@endpoint POST /\n@desc Deletes a user from WorkMail and all subsequent systems. Before you can delete a user, the user state must be DISABLED. Use the DescribeUser action to confirm the user state. Deleting a user is permanent and cannot be undone. WorkMail archives user mailboxes for 30 days before they are permanently removed.\n@required {OrganizationId: str, UserId: str}\n\n@endpoint POST /\n@desc Mark a user, group, or resource as no longer used in WorkMail. This action disassociates the mailbox and schedules it for clean-up. WorkMail keeps mailboxes for 30 days before they are permanently removed. The functionality in the console is Disable.\n@required {OrganizationId: str, EntityId: str}\n\n@endpoint POST /\n@desc Removes a domain from WorkMail, stops email routing to WorkMail, and removes the authorization allowing WorkMail use. SES keeps the domain because other applications may use it. You must first remove any email address used by WorkMail entities before you remove the domain.\n@required {OrganizationId: str, DomainName: str}\n\n@endpoint POST /\n@desc Describes the current email monitoring configuration for a specified organization.\n@required {OrganizationId: str}\n@returns(200) {RoleArn: str?, LogGroupArn: str?}\n\n@endpoint POST /\n@desc Returns basic details about an entity in WorkMail.\n@required {OrganizationId: str, Email: str}\n@returns(200) {EntityId: str?, Name: str?, Type: str?}\n\n@endpoint POST /\n@desc Returns the data available for the group.\n@required {OrganizationId: str, GroupId: str}\n@returns(200) {GroupId: str?, Name: str?, Email: str?, State: str?, EnabledDate: str(timestamp)?, DisabledDate: str(timestamp)?, HiddenFromGlobalAddressList: bool?}\n\n@endpoint POST /\n@desc Lists the settings in a DMARC policy for a specified organization.\n@required {OrganizationId: str}\n@returns(200) {Enforced: bool?}\n\n@endpoint POST /\n@desc Describes the current status of a mailbox export job.\n@required {JobId: str, OrganizationId: str}\n@returns(200) {EntityId: str?, Description: str?, RoleArn: str?, KmsKeyArn: str?, S3BucketName: str?, S3Prefix: str?, S3Path: str?, EstimatedProgress: int?, State: str?, ErrorInfo: str?, StartTime: str(timestamp)?, EndTime: str(timestamp)?}\n\n@endpoint POST /\n@desc Provides more information regarding a given organization based on its identifier.\n@required {OrganizationId: str}\n@returns(200) {OrganizationId: str?, Alias: str?, State: str?, DirectoryId: str?, DirectoryType: str?, DefaultMailDomain: str?, CompletedDate: str(timestamp)?, ErrorMessage: str?, ARN: str?, MigrationAdmin: str?, InteroperabilityEnabled: bool?}\n\n@endpoint POST /\n@desc Returns the data available for the resource.\n@required {OrganizationId: str, ResourceId: str}\n@returns(200) {ResourceId: str?, Email: str?, Name: str?, Type: str?, BookingOptions: BookingOptions?{AutoAcceptRequests: bool?, AutoDeclineRecurringRequests: bool?, AutoDeclineConflictingRequests: bool?}, State: str?, EnabledDate: str(timestamp)?, DisabledDate: str(timestamp)?, Description: str?, HiddenFromGlobalAddressList: bool?}\n\n@endpoint POST /\n@desc Provides information regarding the user.\n@required {OrganizationId: str, UserId: str}\n@returns(200) {UserId: str?, Name: str?, Email: str?, DisplayName: str?, State: str?, UserRole: str?, EnabledDate: str(timestamp)?, DisabledDate: str(timestamp)?, MailboxProvisionedDate: str(timestamp)?, MailboxDeprovisionedDate: str(timestamp)?, FirstName: str?, LastName: str?, HiddenFromGlobalAddressList: bool?, Initials: str?, Telephone: str?, Street: str?, JobTitle: str?, City: str?, Company: str?, ZipCode: str?, Department: str?, Country: str?, Office: str?}\n\n@endpoint POST /\n@desc Removes a member from the resource's set of delegates.\n@required {OrganizationId: str, ResourceId: str, EntityId: str}\n\n@endpoint POST /\n@desc Removes a member from a group.\n@required {OrganizationId: str, GroupId: str, MemberId: str}\n\n@endpoint POST /\n@desc Gets the effects of an organization's access control rules as they apply to a specified IPv4 address, access protocol action, and user ID or impersonation role ID. You must provide either the user ID or impersonation role ID. Impersonation role ID can only be used with Action EWS.\n@required {OrganizationId: str, IpAddress: str, Action: str}\n@optional {UserId: str, ImpersonationRoleId: str}\n@returns(200) {Effect: str?, MatchedRules: [str]?}\n\n@endpoint POST /\n@desc Gets the default retention policy details for the specified organization.\n@required {OrganizationId: str}\n@returns(200) {Id: str?, Name: str?, Description: str?, FolderConfigurations: [FolderConfiguration]?}\n\n@endpoint POST /\n@desc Gets the impersonation role details for the given WorkMail organization.\n@required {OrganizationId: str, ImpersonationRoleId: str}\n@returns(200) {ImpersonationRoleId: str?, Name: str?, Type: str?, Description: str?, Rules: [ImpersonationRule]?, DateCreated: str(timestamp)?, DateModified: str(timestamp)?}\n\n@endpoint POST /\n@desc Tests whether the given impersonation role can impersonate a target user.\n@required {OrganizationId: str, ImpersonationRoleId: str, TargetUser: str}\n@returns(200) {Type: str?, Effect: str?, MatchedRules: [ImpersonationMatchedRule]?}\n\n@endpoint POST /\n@desc Gets details for a mail domain, including domain records required to configure your domain with recommended security.\n@required {OrganizationId: str, DomainName: str}\n@returns(200) {Records: [DnsRecord]?, IsTestDomain: bool?, IsDefault: bool?, OwnershipVerificationStatus: str?, DkimVerificationStatus: str?}\n\n@endpoint POST /\n@desc Requests a user's mailbox details for a specified organization and user.\n@required {OrganizationId: str, UserId: str}\n@returns(200) {MailboxQuota: int?, MailboxSize: num(f64)?}\n\n@endpoint POST /\n@desc Simulates the effect of the mobile device access rules for the given attributes of a sample access event. Use this method to test the effects of the current set of mobile device access rules for the WorkMail organization for a particular user's attributes.\n@required {OrganizationId: str}\n@optional {DeviceType: str, DeviceModel: str, DeviceOperatingSystem: str, DeviceUserAgent: str}\n@returns(200) {Effect: str?, MatchedRules: [MobileDeviceAccessMatchedRule]?}\n\n@endpoint POST /\n@desc Gets the mobile device access override for the given WorkMail organization, user, and device.\n@required {OrganizationId: str, UserId: str, DeviceId: str}\n@returns(200) {UserId: str?, DeviceId: str?, Effect: str?, Description: str?, DateCreated: str(timestamp)?, DateModified: str(timestamp)?}\n\n@endpoint POST /\n@desc Lists the access control rules for the specified organization.\n@required {OrganizationId: str}\n@returns(200) {Rules: [AccessControlRule]?}\n\n@endpoint POST /\n@desc Creates a paginated call to list the aliases associated with a given entity.\n@required {OrganizationId: str, EntityId: str}\n@optional {NextToken: str, MaxResults: int}\n@returns(200) {Aliases: [str]?, NextToken: str?}\n\n@endpoint POST /\n@desc List all the AvailabilityConfiguration's for the given WorkMail organization.\n@required {OrganizationId: str}\n@optional {MaxResults: int, NextToken: str}\n@returns(200) {AvailabilityConfigurations: [AvailabilityConfiguration]?, NextToken: str?}\n\n@endpoint POST /\n@desc Returns an overview of the members of a group. Users and groups can be members of a group.\n@required {OrganizationId: str, GroupId: str}\n@optional {NextToken: str, MaxResults: int}\n@returns(200) {Members: [Member]?, NextToken: str?}\n\n@endpoint POST /\n@desc Returns summaries of the organization's groups.\n@required {OrganizationId: str}\n@optional {NextToken: str, MaxResults: int, Filters: ListGroupsFilters}\n@returns(200) {Groups: [Group]?, NextToken: str?}\n\n@endpoint POST /\n@desc Returns all the groups to which an entity belongs.\n@required {OrganizationId: str, EntityId: str}\n@optional {Filters: ListGroupsForEntityFilters, NextToken: str, MaxResults: int}\n@returns(200) {Groups: [GroupIdentifier]?, NextToken: str?}\n\n@endpoint POST /\n@desc Lists all the impersonation roles for the given WorkMail organization.\n@required {OrganizationId: str}\n@optional {NextToken: str, MaxResults: int}\n@returns(200) {Roles: [ImpersonationRole]?, NextToken: str?}\n\n@endpoint POST /\n@desc Lists the mail domains in a given WorkMail organization.\n@required {OrganizationId: str}\n@optional {MaxResults: int, NextToken: str}\n@returns(200) {MailDomains: [MailDomainSummary]?, NextToken: str?}\n\n@endpoint POST /\n@desc Lists the mailbox export jobs started for the specified organization within the last seven days.\n@required {OrganizationId: str}\n@optional {NextToken: str, MaxResults: int}\n@returns(200) {Jobs: [MailboxExportJob]?, NextToken: str?}\n\n@endpoint POST /\n@desc Lists the mailbox permissions associated with a user, group, or resource mailbox.\n@required {OrganizationId: str, EntityId: str}\n@optional {NextToken: str, MaxResults: int}\n@returns(200) {Permissions: [Permission]?, NextToken: str?}\n\n@endpoint POST /\n@desc Lists all the mobile device access overrides for any given combination of WorkMail organization, user, or device.\n@required {OrganizationId: str}\n@optional {UserId: str, DeviceId: str, NextToken: str, MaxResults: int}\n@returns(200) {Overrides: [MobileDeviceAccessOverride]?, NextToken: str?}\n\n@endpoint POST /\n@desc Lists the mobile device access rules for the specified WorkMail organization.\n@required {OrganizationId: str}\n@returns(200) {Rules: [MobileDeviceAccessRule]?}\n\n@endpoint POST /\n@desc Returns summaries of the customer's organizations.\n@optional {NextToken: str, MaxResults: int}\n@returns(200) {OrganizationSummaries: [OrganizationSummary]?, NextToken: str?}\n\n@endpoint POST /\n@desc Lists the delegates associated with a resource. Users and groups can be resource delegates and answer requests on behalf of the resource.\n@required {OrganizationId: str, ResourceId: str}\n@optional {NextToken: str, MaxResults: int}\n@returns(200) {Delegates: [Delegate]?, NextToken: str?}\n\n@endpoint POST /\n@desc Returns summaries of the organization's resources.\n@required {OrganizationId: str}\n@optional {NextToken: str, MaxResults: int, Filters: ListResourcesFilters}\n@returns(200) {Resources: [Resource]?, NextToken: str?}\n\n@endpoint POST /\n@desc Lists the tags applied to an WorkMail organization resource.\n@required {ResourceARN: str}\n@returns(200) {Tags: [Tag]?}\n\n@endpoint POST /\n@desc Returns summaries of the organization's users.\n@required {OrganizationId: str}\n@optional {NextToken: str, MaxResults: int, Filters: ListUsersFilters}\n@returns(200) {Users: [User]?, NextToken: str?}\n\n@endpoint POST /\n@desc Adds a new access control rule for the specified organization. The rule allows or denies access to the organization for the specified IPv4 addresses, access protocol actions, user IDs and impersonation IDs. Adding a new rule with the same name as an existing rule replaces the older rule.\n@required {Name: str, Effect: str, Description: str, OrganizationId: str}\n@optional {IpRanges: [str], NotIpRanges: [str], Actions: [str], NotActions: [str], UserIds: [str], NotUserIds: [str], ImpersonationRoleIds: [str], NotImpersonationRoleIds: [str]}\n\n@endpoint POST /\n@desc Creates or updates the email monitoring configuration for a specified organization.\n@required {OrganizationId: str, RoleArn: str, LogGroupArn: str}\n\n@endpoint POST /\n@desc Enables or disables a DMARC policy for a given organization.\n@required {OrganizationId: str, Enforced: bool}\n\n@endpoint POST /\n@desc Sets permissions for a user, group, or resource. This replaces any pre-existing permissions.\n@required {OrganizationId: str, EntityId: str, GranteeId: str, PermissionValues: [str]}\n\n@endpoint POST /\n@desc Creates or updates a mobile device access override for the given WorkMail organization, user, and device.\n@required {OrganizationId: str, UserId: str, DeviceId: str, Effect: str}\n@optional {Description: str}\n\n@endpoint POST /\n@desc Puts a retention policy to the specified organization.\n@required {OrganizationId: str, Name: str, FolderConfigurations: [FolderConfiguration]}\n@optional {Id: str, Description: str}\n\n@endpoint POST /\n@desc Registers a new domain in WorkMail and SES, and configures it for use by WorkMail. Emails received by SES for this domain are routed to the specified WorkMail organization, and WorkMail has permanent permission to use the specified domain for sending your users' emails.\n@required {OrganizationId: str, DomainName: str}\n@optional {ClientToken: str}\n\n@endpoint POST /\n@desc Registers an existing and disabled user, group, or resource for WorkMail use by associating a mailbox and calendaring capabilities. It performs no change if the user, group, or resource is enabled and fails if the user, group, or resource is deleted. This operation results in the accumulation of costs. For more information, see Pricing. The equivalent console functionality for this operation is Enable. Users can either be created by calling the CreateUser API operation or they can be synchronized from your directory. For more information, see DeregisterFromWorkMail.\n@required {OrganizationId: str, EntityId: str, Email: str}\n\n@endpoint POST /\n@desc Allows the administrator to reset the password for a user.\n@required {OrganizationId: str, UserId: str, Password: str}\n\n@endpoint POST /\n@desc Starts a mailbox export job to export MIME-format email messages and calendar items from the specified mailbox to the specified Amazon Simple Storage Service (Amazon S3) bucket. For more information, see Exporting mailbox content in the WorkMail Administrator Guide.\n@required {ClientToken: str, OrganizationId: str, EntityId: str, RoleArn: str, KmsKeyArn: str, S3BucketName: str, S3Prefix: str}\n@optional {Description: str}\n@returns(200) {JobId: str?}\n\n@endpoint POST /\n@desc Applies the specified tags to the specified WorkMailorganization resource.\n@required {ResourceARN: str, Tags: [Tag]}\n\n@endpoint POST /\n@desc Performs a test on an availability provider to ensure that access is allowed. For EWS, it verifies the provided credentials can be used to successfully log in. For Lambda, it verifies that the Lambda function can be invoked and that the resource access policy was configured to deny anonymous access. An anonymous invocation is one done without providing either a SourceArn or SourceAccount header.  The request must contain either one provider definition (EwsProvider or LambdaProvider) or the DomainName parameter. If the DomainName parameter is provided, the configuration stored under the DomainName will be tested.\n@required {OrganizationId: str}\n@optional {DomainName: str, EwsProvider: EwsAvailabilityProvider, LambdaProvider: LambdaAvailabilityProvider}\n@returns(200) {TestPassed: bool?, FailureReason: str?}\n\n@endpoint POST /\n@desc Untags the specified tags from the specified WorkMail organization resource.\n@required {ResourceARN: str, TagKeys: [str]}\n\n@endpoint POST /\n@desc Updates an existing AvailabilityConfiguration for the given WorkMail organization and domain.\n@required {OrganizationId: str, DomainName: str}\n@optional {EwsProvider: EwsAvailabilityProvider, LambdaProvider: LambdaAvailabilityProvider}\n\n@endpoint POST /\n@desc Updates the default mail domain for an organization. The default mail domain is used by the WorkMail AWS Console to suggest an email address when enabling a mail user. You can only have one default domain.\n@required {OrganizationId: str, DomainName: str}\n\n@endpoint POST /\n@desc Updates attibutes in a group.\n@required {OrganizationId: str, GroupId: str}\n@optional {HiddenFromGlobalAddressList: bool}\n\n@endpoint POST /\n@desc Updates an impersonation role for the given WorkMail organization.\n@required {OrganizationId: str, ImpersonationRoleId: str, Name: str, Type: str, Rules: [ImpersonationRule]}\n@optional {Description: str}\n\n@endpoint POST /\n@desc Updates a user's current mailbox quota for a specified organization and user.\n@required {OrganizationId: str, UserId: str, MailboxQuota: int}\n\n@endpoint POST /\n@desc Updates a mobile device access rule for the specified WorkMail organization.\n@required {OrganizationId: str, MobileDeviceAccessRuleId: str, Name: str, Effect: str}\n@optional {Description: str, DeviceTypes: [str], NotDeviceTypes: [str], DeviceModels: [str], NotDeviceModels: [str], DeviceOperatingSystems: [str], NotDeviceOperatingSystems: [str], DeviceUserAgents: [str], NotDeviceUserAgents: [str]}\n\n@endpoint POST /\n@desc Updates the primary email for a user, group, or resource. The current email is moved into the list of aliases (or swapped between an existing alias and the current primary email), and the email provided in the input is promoted as the primary.\n@required {OrganizationId: str, EntityId: str, Email: str}\n\n@endpoint POST /\n@desc Updates data for the resource. To have the latest information, it must be preceded by a DescribeResource call. The dataset in the request should be the one expected when performing another DescribeResource call.\n@required {OrganizationId: str, ResourceId: str}\n@optional {Name: str, BookingOptions: BookingOptions, Description: str, Type: str, HiddenFromGlobalAddressList: bool}\n\n@endpoint POST /\n@desc Updates data for the user. To have the latest information, it must be preceded by a DescribeUser call. The dataset in the request should be the one expected when performing another DescribeUser call.\n@required {OrganizationId: str, UserId: str}\n@optional {Role: str, DisplayName: str, FirstName: str, LastName: str, HiddenFromGlobalAddressList: bool, Initials: str, Telephone: str, Street: str, JobTitle: str, City: str, Company: str, ZipCode: str, Department: str, Country: str, Office: str}\n\n@end\n"}