def create_item(self, location_id, body, **kwargs):
all_params = ['<STR_LIT>', '<STR_LIT:body>']<EOL>all_params.append('<STR_LIT>')<EOL>params = locals()<EOL>for key, val in iteritems(params['<STR_LIT>']):<EOL><INDENT>if key not in all_params:<EOL><INDENT>raise TypeError(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>" % key<EOL>)<EOL><DEDENT>params[key] = val<EOL><DEDENT>del params['<STR_LIT>']<EOL>if ('<STR_LIT>' not in params) or (params['<STR_LIT>'] is None):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if ('<STR_LIT:body>' not in params) or (params['<STR_LIT:body>'] is None):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>resource_path = '<STR_LIT>'.replace('<STR_LIT>', '<STR_LIT>')<EOL>path_params = {}<EOL>if '<STR_LIT>' in params:<EOL><INDENT>path_params['<STR_LIT>'] = params['<STR_LIT>']<EOL><DEDENT>query_params = {}<EOL>header_params = {}<EOL>header_params['<STR_LIT>'] = "<STR_LIT>"<EOL>form_params = []<EOL>local_var_files = {}<EOL>body_params = None<EOL>if '<STR_LIT:body>' in params:<EOL><INDENT>body_params = params['<STR_LIT:body>']<EOL><DEDENT>header_params['<STR_LIT>'] = self.api_client.select_header_accept(['<STR_LIT:application/json>'])<EOL>if not header_params['<STR_LIT>']:<EOL><INDENT>del header_params['<STR_LIT>']<EOL><DEDENT>header_params['<STR_LIT:Content-Type>'] = self.api_client.select_header_content_type(['<STR_LIT:application/json>'])<EOL>auth_settings = ['<STR_LIT>']<EOL>return self.api_client.call_api(resource_path, '<STR_LIT:POST>',<EOL>path_params,<EOL>query_params,<EOL>header_params,<EOL>body=body_params,<EOL>post_params=form_params,<EOL>files=local_var_files,<EOL>response_type='<STR_LIT>',<EOL>auth_settings=auth_settings,<EOL>callback=params.get('<STR_LIT>'))<EOL>
CreateItem
Creates an item and at least one variation for it. Item-related entities include fields you can use to associate them with entities in a non-Square system.  When you create an item-related entity, you can optionally specify its `id`. This value must be unique among all IDs ever specified for the account, including those specified by other applications. You can never reuse an entity ID. If you do not specify an ID, Square generates one for the entity.  Item variations have a `user_data` string that lets you associate arbitrary metadata with the variation. The string cannot exceed 255 characters.

This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please define a `callback` function
to be invoked when receiving the response.
>>> def callback_function(response):
>>>     pprint(response)
>>>
>>> thread = api.create_item(location_id, body, callback=callback_function)

:param callback function: The callback function
    for asynchronous request. (optional)
:param str location_id: The ID of the location to create an item for. (required)
:param V1Item body: An object containing the fields to POST for the request.  See the corresponding object definition for field details. (required)
:return: V1Item
         If the method is called asynchronously,
         returns the request thread.