'Removes or unregisters a Service Fabric application type from the
cluster.
Removes or unregisters a Service Fabric application type from the
cluster. This operation can only be performed if all application
instance of the application type has been deleted. Once the
application type is unregistered, no new application instance can be
created for this particular application type.
:param application_type_name: The name of the application type.
:type application_type_name: str
:param application_type_version: The application type version.
:type application_type_version: str
:param timeout: The server timeout for performing the operation in
seconds. This specifies the time duration that the client is willing
to wait for the requested operation to complete. The default value
for this parameter is 60 seconds.
:type timeout: long
:param dict custom_headers: headers that will be added to the request
:param bool raw: returns the direct response alongside the
deserialized response
:param operation_config: :ref:`Operation configuration
overrides<msrest:optionsforoperations>`.
:rtype: None
:rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`
if raw=true
:raises:
:class:`FabricErrorException<azure.servicefabric.models.FabricErrorException>`'

def unprovision_application_type(self, application_type_name, application_type_version, timeout=60, custom_headers=None, raw=False, **operation_config):

    application_type_image_store_version = models.ApplicationTypeImageStoreVersion(application_type_version=application_type_version)
    api_version = '3.0'
    url = '/ApplicationTypes/{applicationTypeName}/$/Unprovision'
    path_format_arguments = {'applicationTypeName': self._serialize.url('application_type_name', application_type_name, 'str')}
    url = self._client.format_url(url, **path_format_arguments)
    query_parameters = {}
    query_parameters['api-version'] = self._serialize.query('api_version', api_version, 'str')
    if (timeout is not None):
        query_parameters['timeout'] = self._serialize.query('timeout', timeout, 'long', maximum=4294967295, minimum=1)
    header_parameters = {}
    header_parameters['Content-Type'] = 'application/json;    charset=utf-8'
    if custom_headers:
        header_parameters.update(custom_headers)
    body_content = self._serialize.body(application_type_image_store_version, 'ApplicationTypeImageStoreVersion')
    request = self._client.post(url, query_parameters)
    response = self._client.send(request, header_parameters, body_content, **operation_config)
    if (response.status_code not in [200]):
        raise models.FabricErrorException(self._deserialize, response)
    if raw:
        client_raw_response = ClientRawResponse(None, response)
        return client_raw_response
