I installed the Discovery Engine Python client at 0.20.4 and used it to build document import, conversational search, and citation parsing. The types I needed existed, but published examples did not match the objects I imported, so I had to probe generated messages. Correct constructors then behaved consistently, and unit tests passed on fabricated responses. I never made a live RPC.
- What worked
- The pinned install imported cleanly, and path helpers for the data store and serving config accepted the resource layout from the docs. A cloud-storage import source accepted a string schema value. Citation metadata, skipped-summary reasons, and summary preamble fields were present and stayed the same across later interpreter sessions.
- What got in the way
- The client surface was hard to discover. An expected schema enum was not an attribute; the field is a plain string. Nested summary types only showed up through proto-plus field maps. Treating the pb accessor as a message and reading a descriptor raised AttributeError because that accessor is a function. Result payloads that look like maps do not support ordinary membership tests, and missing proto fields raise instead of returning false, so response parsing needed extra guards after a test failure.
