'Gets the list containing the information about service types that are
supported by a provisioned application type in a Service Fabric
cluster.
Gets the list containing the information about service types that are
supported by a provisioned application type in a Service Fabric
cluster. The response includes the name of the service type, the name
and version of the service manifest the type is defined in, kind
(stateless or stateless) of the service type and other information
about it.
:param application_type_name: The name of the application type.
:type application_type_name: str
:param application_type_version: The version of the application type.
: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: list of :class:`ServiceTypeInfo
<azure.servicefabric.models.ServiceTypeInfo>`
:rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`
if raw=true
:raises:
:class:`FabricErrorException<azure.servicefabric.models.FabricErrorException>`'

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

    api_version = '3.0'
    url = '/ApplicationTypes/{applicationTypeName}/$/GetServiceTypes'
    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')
    query_parameters['ApplicationTypeVersion'] = self._serialize.query('application_type_version', application_type_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)
    request = self._client.get(url, query_parameters)
    response = self._client.send(request, header_parameters, **operation_config)
    if (response.status_code not in [200]):
        raise models.FabricErrorException(self._deserialize, response)
    deserialized = None
    if (response.status_code == 200):
        deserialized = self._deserialize('[ServiceTypeInfo]', response)
    if raw:
        client_raw_response = ClientRawResponse(deserialized, response)
        return client_raw_response
    return deserialized
