Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where is the API documentation for boto3 resources?

I have learned that boto3 offers two levels of abstraction: a low-level API called client that is a thin wrapper around the AWS HTTP API, and a high-level client called resource that offers real Python objects. My question is, where is the API documentation for the resource API?

I found this:

https://boto3.readthedocs.io/en/stable/reference/services/ec2.html#client

But that describes the client API, and there's not a 1-to-1 mapping to the resource API. For example, enumerating instances is called describe_instances() on the client object, and it is called instances.all() on the resource object.

Next I found this:

http://boto3.readthedocs.io/en/stable/reference/core/resources.html?highlight=resource

This describes a set of base classes and factory methods, but it doesn't describe the API for a specific service like EC2.

At runtime, I printed out an object of interest and found that it is a boto3.resources.factory.ec2.ServiceResource, but searching the boto3 documentation doesn't show me any human-readable documentation for this resource.

Is there an API document that explains what all of the different Python classes are, and what properties/methods they have? I can print this out at runtime, e.g. print(dir(ec2)) but this is a pretty tedious way to discover the API.

like image 757
Mark E. Haase Avatar asked Mar 08 '18 16:03

Mark E. Haase


2 Answers

Thanks @jordanm for answering in the comments. I'm expanding into a more detailed answer.

The client documentation contains a section called "Service Resource" that I had not noticed before.

Highlighted the service resource in the table of contents:

table of contents for client documentation

Clicking this heading shows me the methods and properties of an EC2 resource instance.

methods of an EC2 resource instance

like image 93
Mark E. Haase Avatar answered Nov 16 '22 02:11

Mark E. Haase


Hope this answer is useful to some even though its late.

Use these two links accordingly

Consider the 1st one as the Main reference. This is the link provided in the other answer https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#service-resource

Main reference

The 2nd one provides a more detailed view on the methods and attributes available for a particular resource like instance,image,VPC etc

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html

^this is almost the same link -- all options below the service-resource provide detailed info on that particular resource such as instance,image etc.,

common resources

like image 43
suresh kumar Avatar answered Nov 16 '22 02:11

suresh kumar