Create intent.

        Create a new intent.
        This operation is limited to 2000 requests per 30 minutes. For more information,
        see **Rate limiting**.

        :param str workspace_id: Unique identifier of the workspace.
        :param str intent: The name of the intent. This string must conform to the
        following restrictions:
        - It can contain only Unicode alphanumeric, underscore, hyphen, and dot
        characters.
        - It cannot begin with the reserved prefix `sys-`.
        - It must be no longer than 128 characters.
        :param str description: The description of the intent. This string cannot contain
        carriage return, newline, or tab characters, and it must be no longer than 128
        characters.
        :param list[Example] examples: An array of user input examples for the intent.
        :param dict headers: A `dict` containing the request headers
        :return: A `DetailedResponse` containing the result, headers and HTTP status code.
        :rtype: DetailedResponse

def create_intent(self,
                      workspace_id,
                      intent,
                      description=None,
                      examples=None,
                      **kwargs):
        """
        Create intent.

        Create a new intent.
        This operation is limited to 2000 requests per 30 minutes. For more information,
        see **Rate limiting**.

        :param str workspace_id: Unique identifier of the workspace.
        :param str intent: The name of the intent. This string must conform to the
        following restrictions:
        - It can contain only Unicode alphanumeric, underscore, hyphen, and dot
        characters.
        - It cannot begin with the reserved prefix `sys-`.
        - It must be no longer than 128 characters.
        :param str description: The description of the intent. This string cannot contain
        carriage return, newline, or tab characters, and it must be no longer than 128
        characters.
        :param list[Example] examples: An array of user input examples for the intent.
        :param dict headers: A `dict` containing the request headers
        :return: A `DetailedResponse` containing the result, headers and HTTP status code.
        :rtype: DetailedResponse
        """

        if workspace_id is None:
            raise ValueError('workspace_id must be provided')
        if intent is None:
            raise ValueError('intent must be provided')
        if examples is not None:
            examples = [self._convert_model(x, Example) for x in examples]

        headers = {}
        if 'headers' in kwargs:
            headers.update(kwargs.get('headers'))
        sdk_headers = get_sdk_headers('conversation', 'V1', 'create_intent')
        headers.update(sdk_headers)

        params = {'version': self.version}

        data = {
            'intent': intent,
            'description': description,
            'examples': examples
        }

        url = '/v1/workspaces/{0}/intents'.format(
            *self._encode_path_vars(workspace_id))
        response = self.request(
            method='POST',
            url=url,
            headers=headers,
            params=params,
            json=data,
            accept_json=True)
        return response