# This file was generated by the Julia Swagger Code Generator
# Do not modify this file directly. Modify the swagger specification instead.


struct ProvidersApi <: SwaggerApi
    client::Swagger.Client
end

"""

Gets the specified resource provider.
Param: resourceProviderNamespace::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Param: expand::String
Return: Provider
"""
function providersGet(_api::ProvidersApi, resourceProviderNamespace::String, api_version::String, subscriptionId::String; expand=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", Provider, "/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceProviderNamespace", resourceProviderNamespace)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "\$expand", expand)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    Swagger.exec(_ctx)
end

"""

Gets all resource providers for a subscription.
Param: api_version::String (required)
Param: subscriptionId::String (required)
Param: top::Int32
Param: expand::String
Return: ProviderListResult
"""
function providersList(_api::ProvidersApi, api_version::String, subscriptionId::String; top=nothing, expand=nothing, _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "GET", ProviderListResult, "/subscriptions/{subscriptionId}/providers", ["azure_auth"])
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "\$top", top)  # type Int32
    Swagger.set_param(_ctx.query, "\$expand", expand)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    Swagger.exec(_ctx)
end

"""

Registers a subscription with a resource provider.
Param: resourceProviderNamespace::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: Provider
"""
function providersRegister(_api::ProvidersApi, resourceProviderNamespace::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "POST", Provider, "/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/register", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceProviderNamespace", resourceProviderNamespace)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    Swagger.exec(_ctx)
end

"""

Unregisters a subscription from a resource provider.
Param: resourceProviderNamespace::String (required)
Param: api_version::String (required)
Param: subscriptionId::String (required)
Return: Provider
"""
function providersUnregister(_api::ProvidersApi, resourceProviderNamespace::String, api_version::String, subscriptionId::String; _mediaType=nothing)
    _ctx = Swagger.Ctx(_api.client, "POST", Provider, "/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/unregister", ["azure_auth"])
    Swagger.set_param(_ctx.path, "resourceProviderNamespace", resourceProviderNamespace)  # type String
    Swagger.set_param(_ctx.path, "subscriptionId", subscriptionId)  # type String
    Swagger.set_param(_ctx.query, "api-version", api_version)  # type String
    Swagger.set_header_accept(_ctx, ["application/json"])
    Swagger.set_header_content_type(_ctx, (_mediaType === nothing) ? ["application/json"] : [_mediaType])
    Swagger.exec(_ctx)
end

export providersGet, providersList, providersRegister, providersUnregister
