title: What is boto3.client('S3') returning?
body: <p>I can see:</p>
  
  <pre><code>s = boto3.client('s3')
  print(type(s))
  </code></pre>
  
  <p>prints </p>
  
  <pre><code>&lt;class 'botocore.client.S3'&gt;
  </code></pre>
  
  <p>But if I try</p>
  
  <pre><code>print(botocore.client.S3)
  </code></pre>
  
  <p>I get </p>
  
  <pre><code>AttributeError: module 'botocore.client' has no attribute 'S3'
  </code></pre>
  
  <p>How come?</p>
  
  <p>Side note:
  My end goal is to return a mock that is speced to what botocore.client.S3 has to offer, but the technical aspect of what is being returned has alluded me for some time, and from knowing that, I'll probably know how to answer my ultimate question.</p>