ElasticSearch Nest Insert/Update
<p>I have created an index in elastic using the following query: </p>

<pre><code>PUT public_site
{
  "mappings": {
    "page": {
      "properties": {
        "url": {
          "type": "string"
        },
        "title":{
          "type": "string"
        },
        "body":{
          "type": "string"
        },
        "meta_description":{
          "type": "string"
        },
        "keywords":{
          "type": "string"
        },
        "category":{
          "type": "string"
        },
        "last_updated_date":{
          "type": "date"
        },
        "source_id":{
        "type":"string"
        }
      }
    }
  }
}
</code></pre>

<p>I would like to insert a document into this index using the .net NEST library. My issue is that the .net update method's signature doesn't make any sense to me.</p>

<pre class="lang-cs prettyprint-override"><code>client.Update&lt;TDocument&gt;(IUpdateRequest&lt;TDocument,TPartialDocument&gt;)
</code></pre>

<p>The Java library makes so much more sense to me: </p>

<pre><code>UpdateRequest updateRequest = new UpdateRequest();
updateRequest.index("index");
updateRequest.type("type");
updateRequest.id("1");
updateRequest.doc(jsonBuilder()
        .startObject()
            .field("gender", "male")
        .endObject());
client.update(updateRequest).get();
</code></pre>

<p>In NEST where do the <code>TDocument</code> and <code>TPartialDocument</code> classes come from? 
Are these C# classes that I make representing my index? </p>