# frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
require 'seahorse/client/plugins/content_length.rb'
require 'aws-sdk-core/plugins/credentials_configuration.rb'
require 'aws-sdk-core/plugins/logging.rb'
require 'aws-sdk-core/plugins/param_converter.rb'
require 'aws-sdk-core/plugins/param_validator.rb'
require 'aws-sdk-core/plugins/user_agent.rb'
require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
require 'aws-sdk-core/plugins/retry_errors.rb'
require 'aws-sdk-core/plugins/global_configuration.rb'
require 'aws-sdk-core/plugins/regional_endpoint.rb'
require 'aws-sdk-core/plugins/endpoint_discovery.rb'
require 'aws-sdk-core/plugins/endpoint_pattern.rb'
require 'aws-sdk-core/plugins/response_paging.rb'
require 'aws-sdk-core/plugins/stub_responses.rb'
require 'aws-sdk-core/plugins/idempotency_token.rb'
require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
require 'aws-sdk-core/plugins/transfer_encoding.rb'
require 'aws-sdk-core/plugins/http_checksum.rb'
require 'aws-sdk-core/plugins/signature_v4.rb'
require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
Aws::Plugins::GlobalConfiguration.add_identifier(:workmail)
module Aws::WorkMail
# An API client for WorkMail. To construct a client, you need to configure a `:region` and `:credentials`.
#
# client = Aws::WorkMail::Client.new(
# region: region_name,
# credentials: credentials,
# # ...
# )
#
# For details on configuring region and credentials see
# the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
#
# See {#initialize} for a full list of supported configuration options.
class Client < Seahorse::Client::Base
include Aws::ClientStubs
@identifier = :workmail
set_api(ClientApi::API)
add_plugin(Seahorse::Client::Plugins::ContentLength)
add_plugin(Aws::Plugins::CredentialsConfiguration)
add_plugin(Aws::Plugins::Logging)
add_plugin(Aws::Plugins::ParamConverter)
add_plugin(Aws::Plugins::ParamValidator)
add_plugin(Aws::Plugins::UserAgent)
add_plugin(Aws::Plugins::HelpfulSocketErrors)
add_plugin(Aws::Plugins::RetryErrors)
add_plugin(Aws::Plugins::GlobalConfiguration)
add_plugin(Aws::Plugins::RegionalEndpoint)
add_plugin(Aws::Plugins::EndpointDiscovery)
add_plugin(Aws::Plugins::EndpointPattern)
add_plugin(Aws::Plugins::ResponsePaging)
add_plugin(Aws::Plugins::StubResponses)
add_plugin(Aws::Plugins::IdempotencyToken)
add_plugin(Aws::Plugins::JsonvalueConverter)
add_plugin(Aws::Plugins::ClientMetricsPlugin)
add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
add_plugin(Aws::Plugins::TransferEncoding)
add_plugin(Aws::Plugins::HttpChecksum)
add_plugin(Aws::Plugins::SignatureV4)
add_plugin(Aws::Plugins::Protocols::JsonRpc)
# @overload initialize(options)
# @param [Hash] options
# @option options [required, Aws::CredentialProvider] :credentials
# Your AWS credentials. This can be an instance of any one of the
# following classes:
#
# * `Aws::Credentials` - Used for configuring static, non-refreshing
# credentials.
#
# * `Aws::SharedCredentials` - Used for loading static credentials from a
# shared file, such as `~/.aws/config`.
#
# * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
#
# * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
# assume a role after providing credentials via the web.
#
# * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
# access token generated from `aws login`.
#
# * `Aws::ProcessCredentials` - Used for loading credentials from a
# process that outputs to stdout.
#
# * `Aws::InstanceProfileCredentials` - Used for loading credentials
# from an EC2 IMDS on an EC2 instance.
#
# * `Aws::ECSCredentials` - Used for loading credentials from
# instances running in ECS.
#
# * `Aws::CognitoIdentityCredentials` - Used for loading credentials
# from the Cognito Identity service.
#
# When `:credentials` are not configured directly, the following
# locations will be searched for credentials:
#
# * `Aws.config[:credentials]`
# * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
# * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
# * `~/.aws/credentials`
# * `~/.aws/config`
# * EC2/ECS IMDS instance profile - When used by default, the timeouts
# are very aggressive. Construct and pass an instance of
# `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
# enable retries and extended timeouts.
#
# @option options [required, String] :region
# The AWS region to connect to. The configured `:region` is
# used to determine the service `:endpoint`. When not passed,
# a default `:region` is searched for in the following locations:
#
# * `Aws.config[:region]`
# * `ENV['AWS_REGION']`
# * `ENV['AMAZON_REGION']`
# * `ENV['AWS_DEFAULT_REGION']`
# * `~/.aws/credentials`
# * `~/.aws/config`
#
# @option options [String] :access_key_id
#
# @option options [Boolean] :active_endpoint_cache (false)
# When set to `true`, a thread polling for endpoints will be running in
# the background every 60 secs (default). Defaults to `false`.
#
# @option options [Boolean] :adaptive_retry_wait_to_fill (true)
# Used only in `adaptive` retry mode. When true, the request will sleep
# until there is sufficent client side capacity to retry the request.
# When false, the request will raise a `RetryCapacityNotAvailableError` and will
# not retry instead of sleeping.
#
# @option options [Boolean] :client_side_monitoring (false)
# When `true`, client-side metrics will be collected for all API requests from
# this client.
#
# @option options [String] :client_side_monitoring_client_id ("")
# Allows you to provide an identifier for this client which will be attached to
# all generated client side metrics. Defaults to an empty string.
#
# @option options [String] :client_side_monitoring_host ("127.0.0.1")
# Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
# side monitoring agent is running on, where client metrics will be published via UDP.
#
# @option options [Integer] :client_side_monitoring_port (31000)
# Required for publishing client metrics. The port that the client side monitoring
# agent is running on, where client metrics will be published via UDP.
#
# @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
# Allows you to provide a custom client-side monitoring publisher class. By default,
# will use the Client Side Monitoring Agent Publisher.
#
# @option options [Boolean] :convert_params (true)
# When `true`, an attempt is made to coerce request parameters into
# the required types.
#
# @option options [Boolean] :correct_clock_skew (true)
# Used only in `standard` and adaptive retry modes. Specifies whether to apply
# a clock skew correction and retry requests with skewed client clocks.
#
# @option options [Boolean] :disable_host_prefix_injection (false)
# Set to true to disable SDK automatically adding host prefix
# to default service endpoint when available.
#
# @option options [String] :endpoint
# The client endpoint is normally constructed from the `:region`
# option. You should only configure an `:endpoint` when connecting
# to test or custom endpoints. This should be a valid HTTP(S) URI.
#
# @option options [Integer] :endpoint_cache_max_entries (1000)
# Used for the maximum size limit of the LRU cache storing endpoints data
# for endpoint discovery enabled operations. Defaults to 1000.
#
# @option options [Integer] :endpoint_cache_max_threads (10)
# Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
#
# @option options [Integer] :endpoint_cache_poll_interval (60)
# When :endpoint_discovery and :active_endpoint_cache is enabled,
# Use this option to config the time interval in seconds for making
# requests fetching endpoints information. Defaults to 60 sec.
#
# @option options [Boolean] :endpoint_discovery (false)
# When set to `true`, endpoint discovery will be enabled for operations when available.
#
# @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
# The log formatter.
#
# @option options [Symbol] :log_level (:info)
# The log level to send messages to the `:logger` at.
#
# @option options [Logger] :logger
# The Logger instance to send log messages to. If this option
# is not set, logging will be disabled.
#
# @option options [Integer] :max_attempts (3)
# An integer representing the maximum number attempts that will be made for
# a single request, including the initial attempt. For example,
# setting this value to 5 will result in a request being retried up to
# 4 times. Used in `standard` and `adaptive` retry modes.
#
# @option options [String] :profile ("default")
# Used when loading credentials from the shared credentials file
# at HOME/.aws/credentials. When not specified, 'default' is used.
#
# @option options [Proc] :retry_backoff
# A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
# This option is only used in the `legacy` retry mode.
#
# @option options [Float] :retry_base_delay (0.3)
# The base delay in seconds used by the default backoff function. This option
# is only used in the `legacy` retry mode.
#
# @option options [Symbol] :retry_jitter (:none)
# A delay randomiser function used by the default backoff function.
# Some predefined functions can be referenced by name - :none, :equal, :full,
# otherwise a Proc that takes and returns a number. This option is only used
# in the `legacy` retry mode.
#
# @see https://www.awsarchitectureblog.com/2015/03/backoff.html
#
# @option options [Integer] :retry_limit (3)
# The maximum number of times to retry failed requests. Only
# ~ 500 level server errors and certain ~ 400 level client errors
# are retried. Generally, these are throttling errors, data
# checksum errors, networking errors, timeout errors, auth errors,
# endpoint discovery, and errors from expired credentials.
# This option is only used in the `legacy` retry mode.
#
# @option options [Integer] :retry_max_delay (0)
# The maximum number of seconds to delay between retries (0 for no limit)
# used by the default backoff function. This option is only used in the
# `legacy` retry mode.
#
# @option options [String] :retry_mode ("legacy")
# Specifies which retry algorithm to use. Values are:
#
# * `legacy` - The pre-existing retry behavior. This is default value if
# no retry mode is provided.
#
# * `standard` - A standardized set of retry rules across the AWS SDKs.
# This includes support for retry quotas, which limit the number of
# unsuccessful retries a client can make.
#
# * `adaptive` - An experimental retry mode that includes all the
# functionality of `standard` mode along with automatic client side
# throttling. This is a provisional mode that may change behavior
# in the future.
#
#
# @option options [String] :secret_access_key
#
# @option options [String] :session_token
#
# @option options [Boolean] :simple_json (false)
# Disables request parameter conversion, validation, and formatting.
# Also disable response data type conversions. This option is useful
# when you want to ensure the highest level of performance by
# avoiding overhead of walking request parameters and response data
# structures.
#
# When `:simple_json` is enabled, the request parameters hash must
# be formatted exactly as the DynamoDB API expects.
#
# @option options [Boolean] :stub_responses (false)
# Causes the client to return stubbed responses. By default
# fake responses are generated and returned. You can specify
# the response data to return or errors to raise by calling
# {ClientStubs#stub_responses}. See {ClientStubs} for more information.
#
# ** Please note ** When response stubbing is enabled, no HTTP
# requests are made, and retries are disabled.
#
# @option options [Boolean] :validate_params (true)
# When `true`, request parameters are validated before
# sending the request.
#
# @option options [URI::HTTP,String] :http_proxy A proxy to send
# requests through. Formatted like 'http://proxy.com:123'.
#
# @option options [Float] :http_open_timeout (15) The number of
# seconds to wait when opening a HTTP session before raising a
# `Timeout::Error`.
#
# @option options [Integer] :http_read_timeout (60) The default
# number of seconds to wait for response data. This value can
# safely be set per-request on the session.
#
# @option options [Float] :http_idle_timeout (5) The number of
# seconds a connection is allowed to sit idle before it is
# considered stale. Stale connections are closed and removed
# from the pool before making a request.
#
# @option options [Float] :http_continue_timeout (1) The number of
# seconds to wait for a 100-continue response before sending the
# request body. This option has no effect unless the request has
# "Expect" header set to "100-continue". Defaults to `nil` which
# disables this behaviour. This value can safely be set per
# request on the session.
#
# @option options [Boolean] :http_wire_trace (false) When `true`,
# HTTP debug output will be sent to the `:logger`.
#
# @option options [Boolean] :ssl_verify_peer (true) When `true`,
# SSL peer certificates are verified when establishing a
# connection.
#
# @option options [String] :ssl_ca_bundle Full path to the SSL
# certificate authority bundle file that should be used when
# verifying peer certificates. If you do not pass
# `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
# will be used if available.
#
# @option options [String] :ssl_ca_directory Full path of the
# directory that contains the unbundled SSL certificate
# authority files for verifying peer certificates. If you do
# not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
# system default will be used if available.
#
def initialize(*args)
super
end
# @!group API Operations
# Adds a member (user or group) to the resource's set of delegates.
#
# @option params [required, String] :organization_id
# The organization under which the resource exists.
#
# @option params [required, String] :resource_id
# The resource for which members (users or groups) are associated.
#
# @option params [required, String] :entity_id
# The member (user or group) to associate to the resource.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.associate_delegate_to_resource({
# organization_id: "OrganizationId", # required
# resource_id: "ResourceId", # required
# entity_id: "WorkMailIdentifier", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/AssociateDelegateToResource AWS API Documentation
#
# @overload associate_delegate_to_resource(params = {})
# @param [Hash] params ({})
def associate_delegate_to_resource(params = {}, options = {})
req = build_request(:associate_delegate_to_resource, params)
req.send_request(options)
end
# Adds a member (user or group) to the group's set.
#
# @option params [required, String] :organization_id
# The organization under which the group exists.
#
# @option params [required, String] :group_id
# The group to which the member (user or group) is associated.
#
# @option params [required, String] :member_id
# The member (user or group) to associate to the group.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.associate_member_to_group({
# organization_id: "OrganizationId", # required
# group_id: "WorkMailIdentifier", # required
# member_id: "WorkMailIdentifier", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/AssociateMemberToGroup AWS API Documentation
#
# @overload associate_member_to_group(params = {})
# @param [Hash] params ({})
def associate_member_to_group(params = {}, options = {})
req = build_request(:associate_member_to_group, params)
req.send_request(options)
end
# Cancels a mailbox export job.
#
# If the mailbox export job is near completion, it might not be possible
# to cancel it.
#
#
#
# @option params [required, String] :client_token
# The idempotency token for the client request.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @option params [required, String] :job_id
# The job ID.
#
# @option params [required, String] :organization_id
# The organization ID.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.cancel_mailbox_export_job({
# client_token: "IdempotencyClientToken", # required
# job_id: "MailboxExportJobId", # required
# organization_id: "OrganizationId", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CancelMailboxExportJob AWS API Documentation
#
# @overload cancel_mailbox_export_job(params = {})
# @param [Hash] params ({})
def cancel_mailbox_export_job(params = {}, options = {})
req = build_request(:cancel_mailbox_export_job, params)
req.send_request(options)
end
# Adds an alias to the set of a given member (user or group) of Amazon
# WorkMail.
#
# @option params [required, String] :organization_id
# The organization under which the member (user or group) exists.
#
# @option params [required, String] :entity_id
# The member (user or group) to which this alias is added.
#
# @option params [required, String] :alias
# The alias to add to the member set.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.create_alias({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# alias: "EmailAddress", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateAlias AWS API Documentation
#
# @overload create_alias(params = {})
# @param [Hash] params ({})
def create_alias(params = {}, options = {})
req = build_request(:create_alias, params)
req.send_request(options)
end
# Creates a group that can be used in Amazon WorkMail by calling the
# RegisterToWorkMail operation.
#
# @option params [required, String] :organization_id
# The organization under which the group is to be created.
#
# @option params [required, String] :name
# The name of the group.
#
# @return [Types::CreateGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateGroupResponse#group_id #group_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_group({
# organization_id: "OrganizationId", # required
# name: "GroupName", # required
# })
#
# @example Response structure
#
# resp.group_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateGroup AWS API Documentation
#
# @overload create_group(params = {})
# @param [Hash] params ({})
def create_group(params = {}, options = {})
req = build_request(:create_group, params)
req.send_request(options)
end
# Creates a new mobile device access rule for the specified Amazon
# WorkMail organization.
#
# @option params [required, String] :organization_id
# The Amazon WorkMail organization under which the rule will be created.
#
# @option params [String] :client_token
# The idempotency token for the client request.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @option params [required, String] :name
# The rule name.
#
# @option params [String] :description
# The rule description.
#
# @option params [required, String] :effect
# The effect of the rule when it matches. Allowed values are `ALLOW` or
# `DENY`.
#
# @option params [Array] :device_types
# Device types that the rule will match.
#
# @option params [Array] :not_device_types
# Device types that the rule **will not** match. All other device types
# will match.
#
# @option params [Array] :device_models
# Device models that the rule will match.
#
# @option params [Array] :not_device_models
# Device models that the rule **will not** match. All other device
# models will match.
#
# @option params [Array] :device_operating_systems
# Device operating systems that the rule will match.
#
# @option params [Array] :not_device_operating_systems
# Device operating systems that the rule **will not** match. All other
# device operating systems will match.
#
# @option params [Array] :device_user_agents
# Device user agents that the rule will match.
#
# @option params [Array] :not_device_user_agents
# Device user agents that the rule **will not** match. All other device
# user agents will match.
#
# @return [Types::CreateMobileDeviceAccessRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateMobileDeviceAccessRuleResponse#mobile_device_access_rule_id #mobile_device_access_rule_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_mobile_device_access_rule({
# organization_id: "OrganizationId", # required
# client_token: "IdempotencyClientToken",
# name: "MobileDeviceAccessRuleName", # required
# description: "MobileDeviceAccessRuleDescription",
# effect: "ALLOW", # required, accepts ALLOW, DENY
# device_types: ["DeviceType"],
# not_device_types: ["DeviceType"],
# device_models: ["DeviceModel"],
# not_device_models: ["DeviceModel"],
# device_operating_systems: ["DeviceOperatingSystem"],
# not_device_operating_systems: ["DeviceOperatingSystem"],
# device_user_agents: ["DeviceUserAgent"],
# not_device_user_agents: ["DeviceUserAgent"],
# })
#
# @example Response structure
#
# resp.mobile_device_access_rule_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateMobileDeviceAccessRule AWS API Documentation
#
# @overload create_mobile_device_access_rule(params = {})
# @param [Hash] params ({})
def create_mobile_device_access_rule(params = {}, options = {})
req = build_request(:create_mobile_device_access_rule, params)
req.send_request(options)
end
# Creates a new Amazon 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 Amazon WorkMail directory for you. For more information,
# see [Adding an organization][1] in the *Amazon WorkMail Administrator
# Guide*.
#
# You can associate multiple email domains with an organization, then
# set your default email domain from the Amazon 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][2] and
# [Choosing the default domain][3] in the *Amazon WorkMail Administrator
# Guide*.
#
# Optionally, you can use a customer managed master key from AWS Key
# Management Service (AWS KMS) to encrypt email for your organization.
# If you don't associate an AWS KMS key, Amazon WorkMail creates a
# default AWS managed master key for you.
#
#
#
# [1]: https://docs.aws.amazon.com/workmail/latest/adminguide/add_new_organization.html
# [2]: https://docs.aws.amazon.com/workmail/latest/adminguide/add_domain.html
# [3]: https://docs.aws.amazon.com/workmail/latest/adminguide/default_domain.html
#
# @option params [String] :directory_id
# The AWS Directory Service directory ID.
#
# @option params [required, String] :alias
# The organization alias.
#
# @option params [String] :client_token
# The idempotency token associated with the request.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @option params [Array] :domains
# The email domains to associate with the organization.
#
# @option params [String] :kms_key_arn
# The Amazon Resource Name (ARN) of a customer managed master key from
# AWS KMS.
#
# @option params [Boolean] :enable_interoperability
# When `true`, allows organization interoperability between Amazon
# WorkMail and Microsoft Exchange. Can only be set to `true` if an AD
# Connector directory ID is included in the request.
#
# @return [Types::CreateOrganizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateOrganizationResponse#organization_id #organization_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_organization({
# directory_id: "DirectoryId",
# alias: "OrganizationName", # required
# client_token: "IdempotencyClientToken",
# domains: [
# {
# domain_name: "DomainName",
# hosted_zone_id: "HostedZoneId",
# },
# ],
# kms_key_arn: "KmsKeyArn",
# enable_interoperability: false,
# })
#
# @example Response structure
#
# resp.organization_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateOrganization AWS API Documentation
#
# @overload create_organization(params = {})
# @param [Hash] params ({})
def create_organization(params = {}, options = {})
req = build_request(:create_organization, params)
req.send_request(options)
end
# Creates a new Amazon WorkMail resource.
#
# @option params [required, String] :organization_id
# The identifier associated with the organization for which the resource
# is created.
#
# @option params [required, String] :name
# The name of the new resource.
#
# @option params [required, String] :type
# The type of the new resource. The available types are `equipment` and
# `room`.
#
# @return [Types::CreateResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateResourceResponse#resource_id #resource_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_resource({
# organization_id: "OrganizationId", # required
# name: "ResourceName", # required
# type: "ROOM", # required, accepts ROOM, EQUIPMENT
# })
#
# @example Response structure
#
# resp.resource_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateResource AWS API Documentation
#
# @overload create_resource(params = {})
# @param [Hash] params ({})
def create_resource(params = {}, options = {})
req = build_request(:create_resource, params)
req.send_request(options)
end
# Creates a user who can be used in Amazon WorkMail by calling the
# RegisterToWorkMail operation.
#
# @option params [required, String] :organization_id
# The identifier of the organization for which the user is created.
#
# @option params [required, String] :name
# The name for the new user. WorkMail directory user names have a
# maximum length of 64. All others have a maximum length of 20.
#
# @option params [required, String] :display_name
# The display name for the new user.
#
# @option params [required, String] :password
# The password for the new user.
#
# @return [Types::CreateUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateUserResponse#user_id #user_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_user({
# organization_id: "OrganizationId", # required
# name: "UserName", # required
# display_name: "String", # required
# password: "Password", # required
# })
#
# @example Response structure
#
# resp.user_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateUser AWS API Documentation
#
# @overload create_user(params = {})
# @param [Hash] params ({})
def create_user(params = {}, options = {})
req = build_request(:create_user, params)
req.send_request(options)
end
# Deletes an access control rule for the specified WorkMail
# organization.
#
# @option params [required, String] :organization_id
# The identifier for the organization.
#
# @option params [required, String] :name
# The name of the access control rule.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_access_control_rule({
# organization_id: "OrganizationId", # required
# name: "AccessControlRuleName", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteAccessControlRule AWS API Documentation
#
# @overload delete_access_control_rule(params = {})
# @param [Hash] params ({})
def delete_access_control_rule(params = {}, options = {})
req = build_request(:delete_access_control_rule, params)
req.send_request(options)
end
# Remove one or more specified aliases from a set of aliases for a given
# user.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the user exists.
#
# @option params [required, String] :entity_id
# The identifier for the member (user or group) from which to have the
# aliases removed.
#
# @option params [required, String] :alias
# The aliases to be removed from the user's set of aliases. Duplicate
# entries in the list are collapsed into single entries (the list is
# transformed into a set).
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_alias({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# alias: "EmailAddress", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteAlias AWS API Documentation
#
# @overload delete_alias(params = {})
# @param [Hash] params ({})
def delete_alias(params = {}, options = {})
req = build_request(:delete_alias, params)
req.send_request(options)
end
# Deletes a group from Amazon WorkMail.
#
# @option params [required, String] :organization_id
# The organization that contains the group.
#
# @option params [required, String] :group_id
# The identifier of the group to be deleted.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_group({
# organization_id: "OrganizationId", # required
# group_id: "WorkMailIdentifier", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteGroup AWS API Documentation
#
# @overload delete_group(params = {})
# @param [Hash] params ({})
def delete_group(params = {}, options = {})
req = build_request(:delete_group, params)
req.send_request(options)
end
# Deletes permissions granted to a member (user or group).
#
# @option params [required, String] :organization_id
# The identifier of the organization under which the member (user or
# group) exists.
#
# @option params [required, String] :entity_id
# The identifier of the member (user or group) that owns the mailbox.
#
# @option params [required, String] :grantee_id
# The identifier of the member (user or group) for which to delete
# granted permissions.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_mailbox_permissions({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# grantee_id: "WorkMailIdentifier", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteMailboxPermissions AWS API Documentation
#
# @overload delete_mailbox_permissions(params = {})
# @param [Hash] params ({})
def delete_mailbox_permissions(params = {}, options = {})
req = build_request(:delete_mailbox_permissions, params)
req.send_request(options)
end
# Deletes a mobile device access rule for the specified Amazon WorkMail
# organization.
#
# @option params [required, String] :organization_id
# The Amazon WorkMail organization under which the rule will be deleted.
#
# @option params [required, String] :mobile_device_access_rule_id
# The identifier of the rule to be deleted.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_mobile_device_access_rule({
# organization_id: "OrganizationId", # required
# mobile_device_access_rule_id: "MobileDeviceAccessRuleId", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteMobileDeviceAccessRule AWS API Documentation
#
# @overload delete_mobile_device_access_rule(params = {})
# @param [Hash] params ({})
def delete_mobile_device_access_rule(params = {}, options = {})
req = build_request(:delete_mobile_device_access_rule, params)
req.send_request(options)
end
# Deletes an Amazon WorkMail organization and all underlying AWS
# resources managed by Amazon WorkMail as part of the organization. You
# can choose whether to delete the associated directory. For more
# information, see [Removing an organization][1] in the *Amazon WorkMail
# Administrator Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/workmail/latest/adminguide/remove_organization.html
#
# @option params [String] :client_token
# The idempotency token associated with the request.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @option params [required, String] :organization_id
# The organization ID.
#
# @option params [required, Boolean] :delete_directory
# If true, deletes the AWS Directory Service directory associated with
# the organization.
#
# @return [Types::DeleteOrganizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DeleteOrganizationResponse#organization_id #organization_id} => String
# * {Types::DeleteOrganizationResponse#state #state} => String
#
# @example Request syntax with placeholder values
#
# resp = client.delete_organization({
# client_token: "IdempotencyClientToken",
# organization_id: "OrganizationId", # required
# delete_directory: false, # required
# })
#
# @example Response structure
#
# resp.organization_id #=> String
# resp.state #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteOrganization AWS API Documentation
#
# @overload delete_organization(params = {})
# @param [Hash] params ({})
def delete_organization(params = {}, options = {})
req = build_request(:delete_organization, params)
req.send_request(options)
end
# Deletes the specified resource.
#
# @option params [required, String] :organization_id
# The identifier associated with the organization from which the
# resource is deleted.
#
# @option params [required, String] :resource_id
# The identifier of the resource to be deleted.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_resource({
# organization_id: "OrganizationId", # required
# resource_id: "ResourceId", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteResource AWS API Documentation
#
# @overload delete_resource(params = {})
# @param [Hash] params ({})
def delete_resource(params = {}, options = {})
req = build_request(:delete_resource, params)
req.send_request(options)
end
# Deletes the specified retention policy from the specified
# organization.
#
# @option params [required, String] :organization_id
# The organization ID.
#
# @option params [required, String] :id
# The retention policy ID.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_retention_policy({
# organization_id: "OrganizationId", # required
# id: "ShortString", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteRetentionPolicy AWS API Documentation
#
# @overload delete_retention_policy(params = {})
# @param [Hash] params ({})
def delete_retention_policy(params = {}, options = {})
req = build_request(:delete_retention_policy, params)
req.send_request(options)
end
# Deletes a user from Amazon 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.
#
# @option params [required, String] :organization_id
# The organization that contains the user to be deleted.
#
# @option params [required, String] :user_id
# The identifier of the user to be deleted.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_user({
# organization_id: "OrganizationId", # required
# user_id: "WorkMailIdentifier", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteUser AWS API Documentation
#
# @overload delete_user(params = {})
# @param [Hash] params ({})
def delete_user(params = {}, options = {})
req = build_request(:delete_user, params)
req.send_request(options)
end
# Mark a user, group, or resource as no longer used in Amazon 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*.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the Amazon WorkMail
# entity exists.
#
# @option params [required, String] :entity_id
# The identifier for the member (user or group) to be updated.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.deregister_from_work_mail({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeregisterFromWorkMail AWS API Documentation
#
# @overload deregister_from_work_mail(params = {})
# @param [Hash] params ({})
def deregister_from_work_mail(params = {}, options = {})
req = build_request(:deregister_from_work_mail, params)
req.send_request(options)
end
# Returns the data available for the group.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the group exists.
#
# @option params [required, String] :group_id
# The identifier for the group to be described.
#
# @return [Types::DescribeGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeGroupResponse#group_id #group_id} => String
# * {Types::DescribeGroupResponse#name #name} => String
# * {Types::DescribeGroupResponse#email #email} => String
# * {Types::DescribeGroupResponse#state #state} => String
# * {Types::DescribeGroupResponse#enabled_date #enabled_date} => Time
# * {Types::DescribeGroupResponse#disabled_date #disabled_date} => Time
#
# @example Request syntax with placeholder values
#
# resp = client.describe_group({
# organization_id: "OrganizationId", # required
# group_id: "WorkMailIdentifier", # required
# })
#
# @example Response structure
#
# resp.group_id #=> String
# resp.name #=> String
# resp.email #=> String
# resp.state #=> String, one of "ENABLED", "DISABLED", "DELETED"
# resp.enabled_date #=> Time
# resp.disabled_date #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeGroup AWS API Documentation
#
# @overload describe_group(params = {})
# @param [Hash] params ({})
def describe_group(params = {}, options = {})
req = build_request(:describe_group, params)
req.send_request(options)
end
# Describes the current status of a mailbox export job.
#
# @option params [required, String] :job_id
# The mailbox export job ID.
#
# @option params [required, String] :organization_id
# The organization ID.
#
# @return [Types::DescribeMailboxExportJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeMailboxExportJobResponse#entity_id #entity_id} => String
# * {Types::DescribeMailboxExportJobResponse#description #description} => String
# * {Types::DescribeMailboxExportJobResponse#role_arn #role_arn} => String
# * {Types::DescribeMailboxExportJobResponse#kms_key_arn #kms_key_arn} => String
# * {Types::DescribeMailboxExportJobResponse#s3_bucket_name #s3_bucket_name} => String
# * {Types::DescribeMailboxExportJobResponse#s3_prefix #s3_prefix} => String
# * {Types::DescribeMailboxExportJobResponse#s3_path #s3_path} => String
# * {Types::DescribeMailboxExportJobResponse#estimated_progress #estimated_progress} => Integer
# * {Types::DescribeMailboxExportJobResponse#state #state} => String
# * {Types::DescribeMailboxExportJobResponse#error_info #error_info} => String
# * {Types::DescribeMailboxExportJobResponse#start_time #start_time} => Time
# * {Types::DescribeMailboxExportJobResponse#end_time #end_time} => Time
#
# @example Request syntax with placeholder values
#
# resp = client.describe_mailbox_export_job({
# job_id: "MailboxExportJobId", # required
# organization_id: "OrganizationId", # required
# })
#
# @example Response structure
#
# resp.entity_id #=> String
# resp.description #=> String
# resp.role_arn #=> String
# resp.kms_key_arn #=> String
# resp.s3_bucket_name #=> String
# resp.s3_prefix #=> String
# resp.s3_path #=> String
# resp.estimated_progress #=> Integer
# resp.state #=> String, one of "RUNNING", "COMPLETED", "FAILED", "CANCELLED"
# resp.error_info #=> String
# resp.start_time #=> Time
# resp.end_time #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeMailboxExportJob AWS API Documentation
#
# @overload describe_mailbox_export_job(params = {})
# @param [Hash] params ({})
def describe_mailbox_export_job(params = {}, options = {})
req = build_request(:describe_mailbox_export_job, params)
req.send_request(options)
end
# Provides more information regarding a given organization based on its
# identifier.
#
# @option params [required, String] :organization_id
# The identifier for the organization to be described.
#
# @return [Types::DescribeOrganizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeOrganizationResponse#organization_id #organization_id} => String
# * {Types::DescribeOrganizationResponse#alias #alias} => String
# * {Types::DescribeOrganizationResponse#state #state} => String
# * {Types::DescribeOrganizationResponse#directory_id #directory_id} => String
# * {Types::DescribeOrganizationResponse#directory_type #directory_type} => String
# * {Types::DescribeOrganizationResponse#default_mail_domain #default_mail_domain} => String
# * {Types::DescribeOrganizationResponse#completed_date #completed_date} => Time
# * {Types::DescribeOrganizationResponse#error_message #error_message} => String
# * {Types::DescribeOrganizationResponse#arn #arn} => String
#
# @example Request syntax with placeholder values
#
# resp = client.describe_organization({
# organization_id: "OrganizationId", # required
# })
#
# @example Response structure
#
# resp.organization_id #=> String
# resp.alias #=> String
# resp.state #=> String
# resp.directory_id #=> String
# resp.directory_type #=> String
# resp.default_mail_domain #=> String
# resp.completed_date #=> Time
# resp.error_message #=> String
# resp.arn #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeOrganization AWS API Documentation
#
# @overload describe_organization(params = {})
# @param [Hash] params ({})
def describe_organization(params = {}, options = {})
req = build_request(:describe_organization, params)
req.send_request(options)
end
# Returns the data available for the resource.
#
# @option params [required, String] :organization_id
# The identifier associated with the organization for which the resource
# is described.
#
# @option params [required, String] :resource_id
# The identifier of the resource to be described.
#
# @return [Types::DescribeResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeResourceResponse#resource_id #resource_id} => String
# * {Types::DescribeResourceResponse#email #email} => String
# * {Types::DescribeResourceResponse#name #name} => String
# * {Types::DescribeResourceResponse#type #type} => String
# * {Types::DescribeResourceResponse#booking_options #booking_options} => Types::BookingOptions
# * {Types::DescribeResourceResponse#state #state} => String
# * {Types::DescribeResourceResponse#enabled_date #enabled_date} => Time
# * {Types::DescribeResourceResponse#disabled_date #disabled_date} => Time
#
# @example Request syntax with placeholder values
#
# resp = client.describe_resource({
# organization_id: "OrganizationId", # required
# resource_id: "ResourceId", # required
# })
#
# @example Response structure
#
# resp.resource_id #=> String
# resp.email #=> String
# resp.name #=> String
# resp.type #=> String, one of "ROOM", "EQUIPMENT"
# resp.booking_options.auto_accept_requests #=> Boolean
# resp.booking_options.auto_decline_recurring_requests #=> Boolean
# resp.booking_options.auto_decline_conflicting_requests #=> Boolean
# resp.state #=> String, one of "ENABLED", "DISABLED", "DELETED"
# resp.enabled_date #=> Time
# resp.disabled_date #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeResource AWS API Documentation
#
# @overload describe_resource(params = {})
# @param [Hash] params ({})
def describe_resource(params = {}, options = {})
req = build_request(:describe_resource, params)
req.send_request(options)
end
# Provides information regarding the user.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the user exists.
#
# @option params [required, String] :user_id
# The identifier for the user to be described.
#
# @return [Types::DescribeUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeUserResponse#user_id #user_id} => String
# * {Types::DescribeUserResponse#name #name} => String
# * {Types::DescribeUserResponse#email #email} => String
# * {Types::DescribeUserResponse#display_name #display_name} => String
# * {Types::DescribeUserResponse#state #state} => String
# * {Types::DescribeUserResponse#user_role #user_role} => String
# * {Types::DescribeUserResponse#enabled_date #enabled_date} => Time
# * {Types::DescribeUserResponse#disabled_date #disabled_date} => Time
#
# @example Request syntax with placeholder values
#
# resp = client.describe_user({
# organization_id: "OrganizationId", # required
# user_id: "WorkMailIdentifier", # required
# })
#
# @example Response structure
#
# resp.user_id #=> String
# resp.name #=> String
# resp.email #=> String
# resp.display_name #=> String
# resp.state #=> String, one of "ENABLED", "DISABLED", "DELETED"
# resp.user_role #=> String, one of "USER", "RESOURCE", "SYSTEM_USER"
# resp.enabled_date #=> Time
# resp.disabled_date #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeUser AWS API Documentation
#
# @overload describe_user(params = {})
# @param [Hash] params ({})
def describe_user(params = {}, options = {})
req = build_request(:describe_user, params)
req.send_request(options)
end
# Removes a member from the resource's set of delegates.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the resource exists.
#
# @option params [required, String] :resource_id
# The identifier of the resource from which delegates' set members are
# removed.
#
# @option params [required, String] :entity_id
# The identifier for the member (user, group) to be removed from the
# resource's delegates.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.disassociate_delegate_from_resource({
# organization_id: "OrganizationId", # required
# resource_id: "ResourceId", # required
# entity_id: "WorkMailIdentifier", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DisassociateDelegateFromResource AWS API Documentation
#
# @overload disassociate_delegate_from_resource(params = {})
# @param [Hash] params ({})
def disassociate_delegate_from_resource(params = {}, options = {})
req = build_request(:disassociate_delegate_from_resource, params)
req.send_request(options)
end
# Removes a member from a group.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the group exists.
#
# @option params [required, String] :group_id
# The identifier for the group from which members are removed.
#
# @option params [required, String] :member_id
# The identifier for the member to be removed to the group.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.disassociate_member_from_group({
# organization_id: "OrganizationId", # required
# group_id: "WorkMailIdentifier", # required
# member_id: "WorkMailIdentifier", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DisassociateMemberFromGroup AWS API Documentation
#
# @overload disassociate_member_from_group(params = {})
# @param [Hash] params ({})
def disassociate_member_from_group(params = {}, options = {})
req = build_request(:disassociate_member_from_group, params)
req.send_request(options)
end
# Gets the effects of an organization's access control rules as they
# apply to a specified IPv4 address, access protocol action, or user ID.
#
# @option params [required, String] :organization_id
# The identifier for the organization.
#
# @option params [required, String] :ip_address
# The IPv4 address.
#
# @option params [required, String] :action
# The access protocol action. Valid values include `ActiveSync`,
# `AutoDiscover`, `EWS`, `IMAP`, `SMTP`, `WindowsOutlook`, and
# `WebMail`.
#
# @option params [required, String] :user_id
# The user ID.
#
# @return [Types::GetAccessControlEffectResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::GetAccessControlEffectResponse#effect #effect} => String
# * {Types::GetAccessControlEffectResponse#matched_rules #matched_rules} => Array<String>
#
# @example Request syntax with placeholder values
#
# resp = client.get_access_control_effect({
# organization_id: "OrganizationId", # required
# ip_address: "IpAddress", # required
# action: "AccessControlRuleAction", # required
# user_id: "WorkMailIdentifier", # required
# })
#
# @example Response structure
#
# resp.effect #=> String, one of "ALLOW", "DENY"
# resp.matched_rules #=> Array
# resp.matched_rules[0] #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetAccessControlEffect AWS API Documentation
#
# @overload get_access_control_effect(params = {})
# @param [Hash] params ({})
def get_access_control_effect(params = {}, options = {})
req = build_request(:get_access_control_effect, params)
req.send_request(options)
end
# Gets the default retention policy details for the specified
# organization.
#
# @option params [required, String] :organization_id
# The organization ID.
#
# @return [Types::GetDefaultRetentionPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::GetDefaultRetentionPolicyResponse#id #id} => String
# * {Types::GetDefaultRetentionPolicyResponse#name #name} => String
# * {Types::GetDefaultRetentionPolicyResponse#description #description} => String
# * {Types::GetDefaultRetentionPolicyResponse#folder_configurations #folder_configurations} => Array<Types::FolderConfiguration>
#
# @example Request syntax with placeholder values
#
# resp = client.get_default_retention_policy({
# organization_id: "OrganizationId", # required
# })
#
# @example Response structure
#
# resp.id #=> String
# resp.name #=> String
# resp.description #=> String
# resp.folder_configurations #=> Array
# resp.folder_configurations[0].name #=> String, one of "INBOX", "DELETED_ITEMS", "SENT_ITEMS", "DRAFTS", "JUNK_EMAIL"
# resp.folder_configurations[0].action #=> String, one of "NONE", "DELETE", "PERMANENTLY_DELETE"
# resp.folder_configurations[0].period #=> Integer
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetDefaultRetentionPolicy AWS API Documentation
#
# @overload get_default_retention_policy(params = {})
# @param [Hash] params ({})
def get_default_retention_policy(params = {}, options = {})
req = build_request(:get_default_retention_policy, params)
req.send_request(options)
end
# Requests a user's mailbox details for a specified organization and
# user.
#
# @option params [required, String] :organization_id
# The identifier for the organization that contains the user whose
# mailbox details are being requested.
#
# @option params [required, String] :user_id
# The identifier for the user whose mailbox details are being requested.
#
# @return [Types::GetMailboxDetailsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::GetMailboxDetailsResponse#mailbox_quota #mailbox_quota} => Integer
# * {Types::GetMailboxDetailsResponse#mailbox_size #mailbox_size} => Float
#
# @example Request syntax with placeholder values
#
# resp = client.get_mailbox_details({
# organization_id: "OrganizationId", # required
# user_id: "WorkMailIdentifier", # required
# })
#
# @example Response structure
#
# resp.mailbox_quota #=> Integer
# resp.mailbox_size #=> Float
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetMailboxDetails AWS API Documentation
#
# @overload get_mailbox_details(params = {})
# @param [Hash] params ({})
def get_mailbox_details(params = {}, options = {})
req = build_request(:get_mailbox_details, params)
req.send_request(options)
end
# 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
# Amazon WorkMail organization for a particular user's attributes.
#
# @option params [required, String] :organization_id
# The Amazon WorkMail organization to simulate the access effect for.
#
# @option params [String] :device_type
# Device type the simulated user will report.
#
# @option params [String] :device_model
# Device model the simulated user will report.
#
# @option params [String] :device_operating_system
# Device operating system the simulated user will report.
#
# @option params [String] :device_user_agent
# Device user agent the simulated user will report.
#
# @return [Types::GetMobileDeviceAccessEffectResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::GetMobileDeviceAccessEffectResponse#effect #effect} => String
# * {Types::GetMobileDeviceAccessEffectResponse#matched_rules #matched_rules} => Array<Types::MobileDeviceAccessMatchedRule>
#
# @example Request syntax with placeholder values
#
# resp = client.get_mobile_device_access_effect({
# organization_id: "OrganizationId", # required
# device_type: "DeviceType",
# device_model: "DeviceModel",
# device_operating_system: "DeviceOperatingSystem",
# device_user_agent: "DeviceUserAgent",
# })
#
# @example Response structure
#
# resp.effect #=> String, one of "ALLOW", "DENY"
# resp.matched_rules #=> Array
# resp.matched_rules[0].mobile_device_access_rule_id #=> String
# resp.matched_rules[0].name #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetMobileDeviceAccessEffect AWS API Documentation
#
# @overload get_mobile_device_access_effect(params = {})
# @param [Hash] params ({})
def get_mobile_device_access_effect(params = {}, options = {})
req = build_request(:get_mobile_device_access_effect, params)
req.send_request(options)
end
# Lists the access control rules for the specified organization.
#
# @option params [required, String] :organization_id
# The identifier for the organization.
#
# @return [Types::ListAccessControlRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListAccessControlRulesResponse#rules #rules} => Array<Types::AccessControlRule>
#
# @example Request syntax with placeholder values
#
# resp = client.list_access_control_rules({
# organization_id: "OrganizationId", # required
# })
#
# @example Response structure
#
# resp.rules #=> Array
# resp.rules[0].name #=> String
# resp.rules[0].effect #=> String, one of "ALLOW", "DENY"
# resp.rules[0].description #=> String
# resp.rules[0].ip_ranges #=> Array
# resp.rules[0].ip_ranges[0] #=> String
# resp.rules[0].not_ip_ranges #=> Array
# resp.rules[0].not_ip_ranges[0] #=> String
# resp.rules[0].actions #=> Array
# resp.rules[0].actions[0] #=> String
# resp.rules[0].not_actions #=> Array
# resp.rules[0].not_actions[0] #=> String
# resp.rules[0].user_ids #=> Array
# resp.rules[0].user_ids[0] #=> String
# resp.rules[0].not_user_ids #=> Array
# resp.rules[0].not_user_ids[0] #=> String
# resp.rules[0].date_created #=> Time
# resp.rules[0].date_modified #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListAccessControlRules AWS API Documentation
#
# @overload list_access_control_rules(params = {})
# @param [Hash] params ({})
def list_access_control_rules(params = {}, options = {})
req = build_request(:list_access_control_rules, params)
req.send_request(options)
end
# Creates a paginated call to list the aliases associated with a given
# entity.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the entity exists.
#
# @option params [required, String] :entity_id
# The identifier for the entity for which to list the aliases.
#
# @option params [String] :next_token
# The token to use to retrieve the next page of results. The first call
# does not contain any tokens.
#
# @option params [Integer] :max_results
# The maximum number of results to return in a single call.
#
# @return [Types::ListAliasesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListAliasesResponse#aliases #aliases} => Array<String>
# * {Types::ListAliasesResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_aliases({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.aliases #=> Array
# resp.aliases[0] #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListAliases AWS API Documentation
#
# @overload list_aliases(params = {})
# @param [Hash] params ({})
def list_aliases(params = {}, options = {})
req = build_request(:list_aliases, params)
req.send_request(options)
end
# Returns an overview of the members of a group. Users and groups can be
# members of a group.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the group exists.
#
# @option params [required, String] :group_id
# The identifier for the group to which the members (users or groups)
# are associated.
#
# @option params [String] :next_token
# The token to use to retrieve the next page of results. The first call
# does not contain any tokens.
#
# @option params [Integer] :max_results
# The maximum number of results to return in a single call.
#
# @return [Types::ListGroupMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListGroupMembersResponse#members #members} => Array<Types::Member>
# * {Types::ListGroupMembersResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_group_members({
# organization_id: "OrganizationId", # required
# group_id: "WorkMailIdentifier", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.members #=> Array
# resp.members[0].id #=> String
# resp.members[0].name #=> String
# resp.members[0].type #=> String, one of "GROUP", "USER"
# resp.members[0].state #=> String, one of "ENABLED", "DISABLED", "DELETED"
# resp.members[0].enabled_date #=> Time
# resp.members[0].disabled_date #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListGroupMembers AWS API Documentation
#
# @overload list_group_members(params = {})
# @param [Hash] params ({})
def list_group_members(params = {}, options = {})
req = build_request(:list_group_members, params)
req.send_request(options)
end
# Returns summaries of the organization's groups.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the groups exist.
#
# @option params [String] :next_token
# The token to use to retrieve the next page of results. The first call
# does not contain any tokens.
#
# @option params [Integer] :max_results
# The maximum number of results to return in a single call.
#
# @return [Types::ListGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListGroupsResponse#groups #groups} => Array<Types::Group>
# * {Types::ListGroupsResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_groups({
# organization_id: "OrganizationId", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.groups #=> Array
# resp.groups[0].id #=> String
# resp.groups[0].email #=> String
# resp.groups[0].name #=> String
# resp.groups[0].state #=> String, one of "ENABLED", "DISABLED", "DELETED"
# resp.groups[0].enabled_date #=> Time
# resp.groups[0].disabled_date #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListGroups AWS API Documentation
#
# @overload list_groups(params = {})
# @param [Hash] params ({})
def list_groups(params = {}, options = {})
req = build_request(:list_groups, params)
req.send_request(options)
end
# Lists the mailbox export jobs started for the specified organization
# within the last seven days.
#
# @option params [required, String] :organization_id
# The organization ID.
#
# @option params [String] :next_token
# The token to use to retrieve the next page of results.
#
# @option params [Integer] :max_results
# The maximum number of results to return in a single call.
#
# @return [Types::ListMailboxExportJobsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListMailboxExportJobsResponse#jobs #jobs} => Array<Types::MailboxExportJob>
# * {Types::ListMailboxExportJobsResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_mailbox_export_jobs({
# organization_id: "OrganizationId", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.jobs #=> Array
# resp.jobs[0].job_id #=> String
# resp.jobs[0].entity_id #=> String
# resp.jobs[0].description #=> String
# resp.jobs[0].s3_bucket_name #=> String
# resp.jobs[0].s3_path #=> String
# resp.jobs[0].estimated_progress #=> Integer
# resp.jobs[0].state #=> String, one of "RUNNING", "COMPLETED", "FAILED", "CANCELLED"
# resp.jobs[0].start_time #=> Time
# resp.jobs[0].end_time #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMailboxExportJobs AWS API Documentation
#
# @overload list_mailbox_export_jobs(params = {})
# @param [Hash] params ({})
def list_mailbox_export_jobs(params = {}, options = {})
req = build_request(:list_mailbox_export_jobs, params)
req.send_request(options)
end
# Lists the mailbox permissions associated with a user, group, or
# resource mailbox.
#
# @option params [required, String] :organization_id
# The identifier of the organization under which the user, group, or
# resource exists.
#
# @option params [required, String] :entity_id
# The identifier of the user, group, or resource for which to list
# mailbox permissions.
#
# @option params [String] :next_token
# The token to use to retrieve the next page of results. The first call
# does not contain any tokens.
#
# @option params [Integer] :max_results
# The maximum number of results to return in a single call.
#
# @return [Types::ListMailboxPermissionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListMailboxPermissionsResponse#permissions #permissions} => Array<Types::Permission>
# * {Types::ListMailboxPermissionsResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_mailbox_permissions({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.permissions #=> Array
# resp.permissions[0].grantee_id #=> String
# resp.permissions[0].grantee_type #=> String, one of "GROUP", "USER"
# resp.permissions[0].permission_values #=> Array
# resp.permissions[0].permission_values[0] #=> String, one of "FULL_ACCESS", "SEND_AS", "SEND_ON_BEHALF"
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMailboxPermissions AWS API Documentation
#
# @overload list_mailbox_permissions(params = {})
# @param [Hash] params ({})
def list_mailbox_permissions(params = {}, options = {})
req = build_request(:list_mailbox_permissions, params)
req.send_request(options)
end
# Lists the mobile device access rules for the specified Amazon WorkMail
# organization.
#
# @option params [required, String] :organization_id
# The Amazon WorkMail organization for which to list the rules.
#
# @return [Types::ListMobileDeviceAccessRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListMobileDeviceAccessRulesResponse#rules #rules} => Array<Types::MobileDeviceAccessRule>
#
# @example Request syntax with placeholder values
#
# resp = client.list_mobile_device_access_rules({
# organization_id: "OrganizationId", # required
# })
#
# @example Response structure
#
# resp.rules #=> Array
# resp.rules[0].mobile_device_access_rule_id #=> String
# resp.rules[0].name #=> String
# resp.rules[0].description #=> String
# resp.rules[0].effect #=> String, one of "ALLOW", "DENY"
# resp.rules[0].device_types #=> Array
# resp.rules[0].device_types[0] #=> String
# resp.rules[0].not_device_types #=> Array
# resp.rules[0].not_device_types[0] #=> String
# resp.rules[0].device_models #=> Array
# resp.rules[0].device_models[0] #=> String
# resp.rules[0].not_device_models #=> Array
# resp.rules[0].not_device_models[0] #=> String
# resp.rules[0].device_operating_systems #=> Array
# resp.rules[0].device_operating_systems[0] #=> String
# resp.rules[0].not_device_operating_systems #=> Array
# resp.rules[0].not_device_operating_systems[0] #=> String
# resp.rules[0].device_user_agents #=> Array
# resp.rules[0].device_user_agents[0] #=> String
# resp.rules[0].not_device_user_agents #=> Array
# resp.rules[0].not_device_user_agents[0] #=> String
# resp.rules[0].date_created #=> Time
# resp.rules[0].date_modified #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessRules AWS API Documentation
#
# @overload list_mobile_device_access_rules(params = {})
# @param [Hash] params ({})
def list_mobile_device_access_rules(params = {}, options = {})
req = build_request(:list_mobile_device_access_rules, params)
req.send_request(options)
end
# Returns summaries of the customer's organizations.
#
# @option params [String] :next_token
# The token to use to retrieve the next page of results. The first call
# does not contain any tokens.
#
# @option params [Integer] :max_results
# The maximum number of results to return in a single call.
#
# @return [Types::ListOrganizationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListOrganizationsResponse#organization_summaries #organization_summaries} => Array<Types::OrganizationSummary>
# * {Types::ListOrganizationsResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_organizations({
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.organization_summaries #=> Array
# resp.organization_summaries[0].organization_id #=> String
# resp.organization_summaries[0].alias #=> String
# resp.organization_summaries[0].default_mail_domain #=> String
# resp.organization_summaries[0].error_message #=> String
# resp.organization_summaries[0].state #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListOrganizations AWS API Documentation
#
# @overload list_organizations(params = {})
# @param [Hash] params ({})
def list_organizations(params = {}, options = {})
req = build_request(:list_organizations, params)
req.send_request(options)
end
# Lists the delegates associated with a resource. Users and groups can
# be resource delegates and answer requests on behalf of the resource.
#
# @option params [required, String] :organization_id
# The identifier for the organization that contains the resource for
# which delegates are listed.
#
# @option params [required, String] :resource_id
# The identifier for the resource whose delegates are listed.
#
# @option params [String] :next_token
# The token used to paginate through the delegates associated with a
# resource.
#
# @option params [Integer] :max_results
# The number of maximum results in a page.
#
# @return [Types::ListResourceDelegatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListResourceDelegatesResponse#delegates #delegates} => Array<Types::Delegate>
# * {Types::ListResourceDelegatesResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_resource_delegates({
# organization_id: "OrganizationId", # required
# resource_id: "WorkMailIdentifier", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.delegates #=> Array
# resp.delegates[0].id #=> String
# resp.delegates[0].type #=> String, one of "GROUP", "USER"
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListResourceDelegates AWS API Documentation
#
# @overload list_resource_delegates(params = {})
# @param [Hash] params ({})
def list_resource_delegates(params = {}, options = {})
req = build_request(:list_resource_delegates, params)
req.send_request(options)
end
# Returns summaries of the organization's resources.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the resources exist.
#
# @option params [String] :next_token
# The token to use to retrieve the next page of results. The first call
# does not contain any tokens.
#
# @option params [Integer] :max_results
# The maximum number of results to return in a single call.
#
# @return [Types::ListResourcesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListResourcesResponse#resources #resources} => Array<Types::Resource>
# * {Types::ListResourcesResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_resources({
# organization_id: "OrganizationId", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.resources #=> Array
# resp.resources[0].id #=> String
# resp.resources[0].email #=> String
# resp.resources[0].name #=> String
# resp.resources[0].type #=> String, one of "ROOM", "EQUIPMENT"
# resp.resources[0].state #=> String, one of "ENABLED", "DISABLED", "DELETED"
# resp.resources[0].enabled_date #=> Time
# resp.resources[0].disabled_date #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListResources AWS API Documentation
#
# @overload list_resources(params = {})
# @param [Hash] params ({})
def list_resources(params = {}, options = {})
req = build_request(:list_resources, params)
req.send_request(options)
end
# Lists the tags applied to an Amazon WorkMail organization resource.
#
# @option params [required, String] :resource_arn
# The resource ARN.
#
# @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListTagsForResourceResponse#tags #tags} => Array<Types::Tag>
#
# @example Request syntax with placeholder values
#
# resp = client.list_tags_for_resource({
# resource_arn: "AmazonResourceName", # required
# })
#
# @example Response structure
#
# resp.tags #=> Array
# resp.tags[0].key #=> String
# resp.tags[0].value #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListTagsForResource AWS API Documentation
#
# @overload list_tags_for_resource(params = {})
# @param [Hash] params ({})
def list_tags_for_resource(params = {}, options = {})
req = build_request(:list_tags_for_resource, params)
req.send_request(options)
end
# Returns summaries of the organization's users.
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the users exist.
#
# @option params [String] :next_token
# The token to use to retrieve the next page of results. The first call
# does not contain any tokens.
#
# @option params [Integer] :max_results
# The maximum number of results to return in a single call.
#
# @return [Types::ListUsersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListUsersResponse#users #users} => Array<Types::User>
# * {Types::ListUsersResponse#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_users({
# organization_id: "OrganizationId", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.users #=> Array
# resp.users[0].id #=> String
# resp.users[0].email #=> String
# resp.users[0].name #=> String
# resp.users[0].display_name #=> String
# resp.users[0].state #=> String, one of "ENABLED", "DISABLED", "DELETED"
# resp.users[0].user_role #=> String, one of "USER", "RESOURCE", "SYSTEM_USER"
# resp.users[0].enabled_date #=> Time
# resp.users[0].disabled_date #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListUsers AWS API Documentation
#
# @overload list_users(params = {})
# @param [Hash] params ({})
def list_users(params = {}, options = {})
req = build_request(:list_users, params)
req.send_request(options)
end
# 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, and user IDs. Adding a new
# rule with the same name as an existing rule replaces the older rule.
#
# @option params [required, String] :name
# The rule name.
#
# @option params [required, String] :effect
# The rule effect.
#
# @option params [required, String] :description
# The rule description.
#
# @option params [Array] :ip_ranges
# IPv4 CIDR ranges to include in the rule.
#
# @option params [Array] :not_ip_ranges
# IPv4 CIDR ranges to exclude from the rule.
#
# @option params [Array] :actions
# Access protocol actions to include in the rule. Valid values include
# `ActiveSync`, `AutoDiscover`, `EWS`, `IMAP`, `SMTP`, `WindowsOutlook`,
# and `WebMail`.
#
# @option params [Array] :not_actions
# Access protocol actions to exclude from the rule. Valid values include
# `ActiveSync`, `AutoDiscover`, `EWS`, `IMAP`, `SMTP`, `WindowsOutlook`,
# and `WebMail`.
#
# @option params [Array] :user_ids
# User IDs to include in the rule.
#
# @option params [Array] :not_user_ids
# User IDs to exclude from the rule.
#
# @option params [required, String] :organization_id
# The identifier of the organization.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.put_access_control_rule({
# name: "AccessControlRuleName", # required
# effect: "ALLOW", # required, accepts ALLOW, DENY
# description: "AccessControlRuleDescription", # required
# ip_ranges: ["IpRange"],
# not_ip_ranges: ["IpRange"],
# actions: ["AccessControlRuleAction"],
# not_actions: ["AccessControlRuleAction"],
# user_ids: ["WorkMailIdentifier"],
# not_user_ids: ["WorkMailIdentifier"],
# organization_id: "OrganizationId", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutAccessControlRule AWS API Documentation
#
# @overload put_access_control_rule(params = {})
# @param [Hash] params ({})
def put_access_control_rule(params = {}, options = {})
req = build_request(:put_access_control_rule, params)
req.send_request(options)
end
# Sets permissions for a user, group, or resource. This replaces any
# pre-existing permissions.
#
# @option params [required, String] :organization_id
# The identifier of the organization under which the user, group, or
# resource exists.
#
# @option params [required, String] :entity_id
# The identifier of the user, group, or resource for which to update
# mailbox permissions.
#
# @option params [required, String] :grantee_id
# The identifier of the user, group, or resource to which to grant the
# permissions.
#
# @option params [required, Array] :permission_values
# The permissions granted to the grantee. SEND\_AS allows the grantee to
# send email as the owner of the mailbox (the grantee is not mentioned
# on these emails). SEND\_ON\_BEHALF allows the grantee to send email on
# behalf of the owner of the mailbox (the grantee is not mentioned as
# the physical sender of these emails). FULL\_ACCESS allows the grantee
# full access to the mailbox, irrespective of other folder-level
# permissions set on the mailbox.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.put_mailbox_permissions({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# grantee_id: "WorkMailIdentifier", # required
# permission_values: ["FULL_ACCESS"], # required, accepts FULL_ACCESS, SEND_AS, SEND_ON_BEHALF
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutMailboxPermissions AWS API Documentation
#
# @overload put_mailbox_permissions(params = {})
# @param [Hash] params ({})
def put_mailbox_permissions(params = {}, options = {})
req = build_request(:put_mailbox_permissions, params)
req.send_request(options)
end
# Puts a retention policy to the specified organization.
#
# @option params [required, String] :organization_id
# The organization ID.
#
# @option params [String] :id
# The retention policy ID.
#
# @option params [required, String] :name
# The retention policy name.
#
# @option params [String] :description
# The retention policy description.
#
# @option params [required, Array] :folder_configurations
# The retention policy folder configurations.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.put_retention_policy({
# organization_id: "OrganizationId", # required
# id: "ShortString",
# name: "ShortString", # required
# description: "PolicyDescription",
# folder_configurations: [ # required
# {
# name: "INBOX", # required, accepts INBOX, DELETED_ITEMS, SENT_ITEMS, DRAFTS, JUNK_EMAIL
# action: "NONE", # required, accepts NONE, DELETE, PERMANENTLY_DELETE
# period: 1,
# },
# ],
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutRetentionPolicy AWS API Documentation
#
# @overload put_retention_policy(params = {})
# @param [Hash] params ({})
def put_retention_policy(params = {}, options = {})
req = build_request(:put_retention_policy, params)
req.send_request(options)
end
# Registers an existing and disabled user, group, or resource for Amazon
# 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][1]. 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.
#
#
#
# [1]: https://aws.amazon.com/workmail/pricing
#
# @option params [required, String] :organization_id
# The identifier for the organization under which the user, group, or
# resource exists.
#
# @option params [required, String] :entity_id
# The identifier for the user, group, or resource to be updated.
#
# @option params [required, String] :email
# The email for the user, group, or resource to be updated.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.register_to_work_mail({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# email: "EmailAddress", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/RegisterToWorkMail AWS API Documentation
#
# @overload register_to_work_mail(params = {})
# @param [Hash] params ({})
def register_to_work_mail(params = {}, options = {})
req = build_request(:register_to_work_mail, params)
req.send_request(options)
end
# Allows the administrator to reset the password for a user.
#
# @option params [required, String] :organization_id
# The identifier of the organization that contains the user for which
# the password is reset.
#
# @option params [required, String] :user_id
# The identifier of the user for whom the password is reset.
#
# @option params [required, String] :password
# The new password for the user.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.reset_password({
# organization_id: "OrganizationId", # required
# user_id: "WorkMailIdentifier", # required
# password: "Password", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ResetPassword AWS API Documentation
#
# @overload reset_password(params = {})
# @param [Hash] params ({})
def reset_password(params = {}, options = {})
req = build_request(:reset_password, params)
req.send_request(options)
end
# 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][1] in the *Amazon WorkMail Administrator
# Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/workmail/latest/adminguide/mail-export.html
#
# @option params [required, String] :client_token
# The idempotency token for the client request.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @option params [required, String] :organization_id
# The identifier associated with the organization.
#
# @option params [required, String] :entity_id
# The identifier of the user or resource associated with the mailbox.
#
# @option params [String] :description
# The mailbox export job description.
#
# @option params [required, String] :role_arn
# The ARN of the AWS Identity and Access Management (IAM) role that
# grants write permission to the S3 bucket.
#
# @option params [required, String] :kms_key_arn
# The Amazon Resource Name (ARN) of the symmetric AWS Key Management
# Service (AWS KMS) key that encrypts the exported mailbox content.
#
# @option params [required, String] :s3_bucket_name
# The name of the S3 bucket.
#
# @option params [required, String] :s3_prefix
# The S3 bucket prefix.
#
# @return [Types::StartMailboxExportJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::StartMailboxExportJobResponse#job_id #job_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.start_mailbox_export_job({
# client_token: "IdempotencyClientToken", # required
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# description: "Description",
# role_arn: "RoleArn", # required
# kms_key_arn: "KmsKeyArn", # required
# s3_bucket_name: "S3BucketName", # required
# s3_prefix: "S3ObjectKey", # required
# })
#
# @example Response structure
#
# resp.job_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/StartMailboxExportJob AWS API Documentation
#
# @overload start_mailbox_export_job(params = {})
# @param [Hash] params ({})
def start_mailbox_export_job(params = {}, options = {})
req = build_request(:start_mailbox_export_job, params)
req.send_request(options)
end
# Applies the specified tags to the specified Amazon WorkMail
# organization resource.
#
# @option params [required, String] :resource_arn
# The resource ARN.
#
# @option params [required, Array] :tags
# The tag key-value pairs.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.tag_resource({
# resource_arn: "AmazonResourceName", # required
# tags: [ # required
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/TagResource AWS API Documentation
#
# @overload tag_resource(params = {})
# @param [Hash] params ({})
def tag_resource(params = {}, options = {})
req = build_request(:tag_resource, params)
req.send_request(options)
end
# Untags the specified tags from the specified Amazon WorkMail
# organization resource.
#
# @option params [required, String] :resource_arn
# The resource ARN.
#
# @option params [required, Array] :tag_keys
# The tag keys.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.untag_resource({
# resource_arn: "AmazonResourceName", # required
# tag_keys: ["TagKey"], # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UntagResource AWS API Documentation
#
# @overload untag_resource(params = {})
# @param [Hash] params ({})
def untag_resource(params = {}, options = {})
req = build_request(:untag_resource, params)
req.send_request(options)
end
# Updates a user's current mailbox quota for a specified organization
# and user.
#
# @option params [required, String] :organization_id
# The identifier for the organization that contains the user for whom to
# update the mailbox quota.
#
# @option params [required, String] :user_id
# The identifer for the user for whom to update the mailbox quota.
#
# @option params [required, Integer] :mailbox_quota
# The updated mailbox quota, in MB, for the specified user.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.update_mailbox_quota({
# organization_id: "OrganizationId", # required
# user_id: "WorkMailIdentifier", # required
# mailbox_quota: 1, # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateMailboxQuota AWS API Documentation
#
# @overload update_mailbox_quota(params = {})
# @param [Hash] params ({})
def update_mailbox_quota(params = {}, options = {})
req = build_request(:update_mailbox_quota, params)
req.send_request(options)
end
# Updates a mobile device access rule for the specified Amazon WorkMail
# organization.
#
# @option params [required, String] :organization_id
# The Amazon WorkMail organization under which the rule will be updated.
#
# @option params [required, String] :mobile_device_access_rule_id
# The identifier of the rule to be updated.
#
# @option params [required, String] :name
# The updated rule name.
#
# @option params [String] :description
# The updated rule description.
#
# @option params [required, String] :effect
# The effect of the rule when it matches. Allowed values are `ALLOW` or
# `DENY`.
#
# @option params [Array] :device_types
# Device types that the updated rule will match.
#
# @option params [Array] :not_device_types
# Device types that the updated rule **will not** match. All other
# device types will match.
#
# @option params [Array] :device_models
# Device models that the updated rule will match.
#
# @option params [Array] :not_device_models
# Device models that the updated rule **will not** match. All other
# device models will match.
#
# @option params [Array] :device_operating_systems
# Device operating systems that the updated rule will match.
#
# @option params [Array] :not_device_operating_systems
# Device operating systems that the updated rule **will not** match. All
# other device operating systems will match.
#
# @option params [Array] :device_user_agents
# User agents that the updated rule will match.
#
# @option params [Array] :not_device_user_agents
# User agents that the updated rule **will not** match. All other user
# agents will match.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.update_mobile_device_access_rule({
# organization_id: "OrganizationId", # required
# mobile_device_access_rule_id: "MobileDeviceAccessRuleId", # required
# name: "MobileDeviceAccessRuleName", # required
# description: "MobileDeviceAccessRuleDescription",
# effect: "ALLOW", # required, accepts ALLOW, DENY
# device_types: ["DeviceType"],
# not_device_types: ["DeviceType"],
# device_models: ["DeviceModel"],
# not_device_models: ["DeviceModel"],
# device_operating_systems: ["DeviceOperatingSystem"],
# not_device_operating_systems: ["DeviceOperatingSystem"],
# device_user_agents: ["DeviceUserAgent"],
# not_device_user_agents: ["DeviceUserAgent"],
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateMobileDeviceAccessRule AWS API Documentation
#
# @overload update_mobile_device_access_rule(params = {})
# @param [Hash] params ({})
def update_mobile_device_access_rule(params = {}, options = {})
req = build_request(:update_mobile_device_access_rule, params)
req.send_request(options)
end
# 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.
#
# @option params [required, String] :organization_id
# The organization that contains the user, group, or resource to update.
#
# @option params [required, String] :entity_id
# The user, group, or resource to update.
#
# @option params [required, String] :email
# The value of the email to be updated as primary.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.update_primary_email_address({
# organization_id: "OrganizationId", # required
# entity_id: "WorkMailIdentifier", # required
# email: "EmailAddress", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdatePrimaryEmailAddress AWS API Documentation
#
# @overload update_primary_email_address(params = {})
# @param [Hash] params ({})
def update_primary_email_address(params = {}, options = {})
req = build_request(:update_primary_email_address, params)
req.send_request(options)
end
# 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.
#
# @option params [required, String] :organization_id
# The identifier associated with the organization for which the resource
# is updated.
#
# @option params [required, String] :resource_id
# The identifier of the resource to be updated.
#
# @option params [String] :name
# The name of the resource to be updated.
#
# @option params [Types::BookingOptions] :booking_options
# The resource's booking options to be updated.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.update_resource({
# organization_id: "OrganizationId", # required
# resource_id: "ResourceId", # required
# name: "ResourceName",
# booking_options: {
# auto_accept_requests: false,
# auto_decline_recurring_requests: false,
# auto_decline_conflicting_requests: false,
# },
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateResource AWS API Documentation
#
# @overload update_resource(params = {})
# @param [Hash] params ({})
def update_resource(params = {}, options = {})
req = build_request(:update_resource, params)
req.send_request(options)
end
# @!endgroup
# @param params ({})
# @api private
def build_request(operation_name, params = {})
handlers = @handlers.for(operation_name)
context = Seahorse::Client::RequestContext.new(
operation_name: operation_name,
operation: config.api.operation(operation_name),
client: self,
params: params,
config: config)
context[:gem_name] = 'aws-sdk-workmail'
context[:gem_version] = '1.37.0'
Seahorse::Client::Request.new(handlers, context)
end
# @api private
# @deprecated
def waiter_names
[]
end
class << self
# @api private
attr_reader :identifier
# @api private
def errors_module
Errors
end
end
end
end