require 'microsoft_kiota_abstractions'
require_relative '../../../../../microsoft_graph'
require_relative '../../../../../models/calendar_permission'
require_relative '../../../../../models/o_data_errors_o_data_error'
require_relative '../../../../groups'
require_relative '../../../item'
require_relative '../../calendar'
require_relative '../calendar_permissions'
require_relative './item'
module MicrosoftGraph
module Groups
module Item
module Calendar
module CalendarPermissions
module Item
##
# Provides operations to manage the calendarPermissions property of the microsoft.graph.calendar entity.
class CalendarPermissionItemRequestBuilder < MicrosoftKiotaAbstractions::BaseRequestBuilder
##
## Instantiates a new CalendarPermissionItemRequestBuilder and sets the default values.
## @param path_parameters Path parameters for the request
## @param request_adapter The request adapter to use to execute the requests.
## @return a void
##
def initialize(path_parameters, request_adapter)
super(path_parameters, request_adapter, "{+baseurl}/groups/{group%2Did}/calendar/calendarPermissions/{calendarPermission%2Did}{?%24select}")
end
##
## Delete calendarPermission.
## @param request_configuration Configuration for the request such as headers, query parameters, and middleware options.
## @return a Fiber of void
##
def delete(request_configuration=nil)
request_info = self.to_delete_request_information(
request_configuration
)
error_mapping = Hash.new
error_mapping["4XX"] = lambda {|pn| MicrosoftGraph::Models::ODataErrorsODataError.create_from_discriminator_value(pn) }
error_mapping["5XX"] = lambda {|pn| MicrosoftGraph::Models::ODataErrorsODataError.create_from_discriminator_value(pn) }
return @request_adapter.send_async(request_info, nil, error_mapping)
end
##
## Get the specified permissions object of a user or group calendar that has been shared.
## @param request_configuration Configuration for the request such as headers, query parameters, and middleware options.
## @return a Fiber of calendar_permission
##
def get(request_configuration=nil)
request_info = self.to_get_request_information(
request_configuration
)
error_mapping = Hash.new
error_mapping["4XX"] = lambda {|pn| MicrosoftGraph::Models::ODataErrorsODataError.create_from_discriminator_value(pn) }
error_mapping["5XX"] = lambda {|pn| MicrosoftGraph::Models::ODataErrorsODataError.create_from_discriminator_value(pn) }
return @request_adapter.send_async(request_info, lambda {|pn| MicrosoftGraph::Models::CalendarPermission.create_from_discriminator_value(pn) }, error_mapping)
end
##
## Update the permissions assigned to an existing sharee or delegate, through the corresponding calendarPermission object for a calendar.
## @param body The request body
## @param request_configuration Configuration for the request such as headers, query parameters, and middleware options.
## @return a Fiber of calendar_permission
##
def patch(body, request_configuration=nil)
raise StandardError, 'body cannot be null' if body.nil?
request_info = self.to_patch_request_information(
body, request_configuration
)
error_mapping = Hash.new
error_mapping["4XX"] = lambda {|pn| MicrosoftGraph::Models::ODataErrorsODataError.create_from_discriminator_value(pn) }
error_mapping["5XX"] = lambda {|pn| MicrosoftGraph::Models::ODataErrorsODataError.create_from_discriminator_value(pn) }
return @request_adapter.send_async(request_info, lambda {|pn| MicrosoftGraph::Models::CalendarPermission.create_from_discriminator_value(pn) }, error_mapping)
end
##
## Delete calendarPermission.
## @param request_configuration Configuration for the request such as headers, query parameters, and middleware options.
## @return a request_information
##
def to_delete_request_information(request_configuration=nil)
request_info = MicrosoftKiotaAbstractions::RequestInformation.new()
request_info.url_template = @url_template
request_info.path_parameters = @path_parameters
request_info.http_method = :DELETE
unless request_configuration.nil?
request_info.add_headers_from_raw_object(request_configuration.headers)
request_info.add_request_options(request_configuration.options)
end
return request_info
end
##
## Get the specified permissions object of a user or group calendar that has been shared.
## @param request_configuration Configuration for the request such as headers, query parameters, and middleware options.
## @return a request_information
##
def to_get_request_information(request_configuration=nil)
request_info = MicrosoftKiotaAbstractions::RequestInformation.new()
request_info.url_template = @url_template
request_info.path_parameters = @path_parameters
request_info.http_method = :GET
request_info.headers.add('Accept', 'application/json')
unless request_configuration.nil?
request_info.add_headers_from_raw_object(request_configuration.headers)
request_info.set_query_string_parameters_from_raw_object(request_configuration.query_parameters)
request_info.add_request_options(request_configuration.options)
end
return request_info
end
##
## Update the permissions assigned to an existing sharee or delegate, through the corresponding calendarPermission object for a calendar.
## @param body The request body
## @param request_configuration Configuration for the request such as headers, query parameters, and middleware options.
## @return a request_information
##
def to_patch_request_information(body, request_configuration=nil)
raise StandardError, 'body cannot be null' if body.nil?
request_info = MicrosoftKiotaAbstractions::RequestInformation.new()
request_info.url_template = @url_template
request_info.path_parameters = @path_parameters
request_info.http_method = :PATCH
request_info.headers.add('Accept', 'application/json')
unless request_configuration.nil?
request_info.add_headers_from_raw_object(request_configuration.headers)
request_info.add_request_options(request_configuration.options)
end
request_info.set_content_from_parsable(@request_adapter, "application/json", body)
return request_info
end
##
# Get the specified permissions object of a user or group calendar that has been shared.
class CalendarPermissionItemRequestBuilderGetQueryParameters
##
# Select properties to be returned
attr_accessor :select
##
## Maps the query parameters names to their encoded names for the URI template parsing.
## @param original_name The original query parameter name in the class.
## @return a string
##
def get_query_parameter(original_name)
raise StandardError, 'original_name cannot be null' if original_name.nil?
case original_name
when "select"
return "%24select"
else
return original_name
end
end
end
end
end
end
end
end
end
end