# mypy-boto3-lightsail

[![PyPI - mypy-boto3-lightsail](https://img.shields.io/pypi/v/mypy-boto3-lightsail.svg?color=blue)](https://pypi.org/project/mypy-boto3-lightsail)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mypy-boto3-lightsail.svg?color=blue)](https://pypi.org/project/mypy-boto3-lightsail)
[![Docs](https://img.shields.io/readthedocs/mypy-boto3-builder.svg?color=blue)](https://mypy-boto3-builder.readthedocs.io/)

Type annotations for
[boto3.Lightsail 1.14.61](https://boto3.amazonaws.com/v1/documentation/api/1.14.61/reference/services/lightsail.html#Lightsail) service
compatible with
[VSCode](https://code.visualstudio.com/),
[PyCharm](https://www.jetbrains.com/pycharm/),
[mypy](https://github.com/python/mypy),
[pyright](https://github.com/microsoft/pyright)
and other tools.

Generated by [mypy-boto3-buider 3.1.0](https://github.com/vemel/mypy_boto3_builder).

More information can be found on [boto3-stubs](https://pypi.org/project/boto3-stubs/) page.

- [mypy-boto3-lightsail](#mypy-boto3-lightsail)
  - [How to install](#how-to-install)
  - [Usage](#usage)
    - [VSCode](#vscode)
    - [PyCharm](#pycharm)
    - [Other IDEs](#other-ides)
    - [mypy](#mypy)
    - [pyright](#pyright)
  - [Explicit type annotations](#explicit-type-annotations)
    - [Client annotations](#client-annotations)
    - [Paginators annotations](#paginators-annotations)
    - [Waiters annotations](#waiters-annotations)
    - [Service Resource annotations](#service-resource-annotations)
    - [Other resources annotations](#other-resources-annotations)
    - [Collections annotations](#collections-annotations)
    - [Typed dictionations](#typed-dictionations)

## How to install

Install `boto3-stubs` for `Lightsail` service.

```bash
python -m pip install boto3-stubs[lightsail]
```

## Usage

### VSCode

- Install [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
- Install [Pylance extension](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance)
- Set `Pylance` as your Python Language Server
- Install `boto-stubs[lightsail]` in your environment: `python -m pip install 'boto3-stubs[lightsail]'`

Both type checking and auto-complete should work for `Lightsail` service.
No explicit type annotations required, write your `boto3` code as usual.

### PyCharm

- Install `boto-stubs[lightsail]` in your environment: `python -m pip install 'boto3-stubs[lightsail]'`

Both type checking and auto-complete should work for `Lightsail` service.
No explicit type annotations required, write your `boto3` code as usual.
Auto-complete can be slow on big projects or if you have a lot of installed `boto3-stubs` submodules.

### Other IDEs

Not tested, but as long as your IDE support `mypy` or `pyright`, everything should work.

### mypy

- Install `mypy`: `python -m pip install mypy`
- Install `boto-stubs[lightsail]` in your environment: `python -m pip install 'boto3-stubs[lightsail]'`
- Run `mypy` as usual

Type checking should work for `Lightsail` service.
No explicit type annotations required, write your `boto3` code as usual.

### pyright

- Install `pyright`: `yarn global add pyright`
- Install `boto-stubs[lightsail]` in your environment: `python -m pip install 'boto3-stubs[lightsail]'`
- Optionally, you can install `boto3-stubs` to `typings` folder.

Type checking should work for `Lightsail` service.
No explicit type annotations required, write your `boto3` code as usual.

## Explicit type annotations

### Client annotations

`LightsailClient` provides annotations for `boto3.client("lightsail")`.

```python
import boto3

from mypy_boto3_lightsail import LightsailClient

client: LightsailClient = boto3.client("lightsail")

# now client usage is checked by mypy and IDE should provide code auto-complete

# works for session as well
session = boto3.session.Session(region="us-west-1")
session_client: LightsailClient = session.client("lightsail")
```

### Paginators annotations

`mypy_boto3_lightsail.paginator` module contains type annotations for all paginators.

```python
from mypy_boto3_lightsail import LightsailClient
from mypy_boto3_lightsail.paginator import (
    GetActiveNamesPaginator,
    GetBlueprintsPaginator,
    GetBundlesPaginator,
    GetCloudFormationStackRecordsPaginator,
    GetDiskSnapshotsPaginator,
    GetDisksPaginator,
    GetDomainsPaginator,
    GetExportSnapshotRecordsPaginator,
    GetInstanceSnapshotsPaginator,
    GetInstancesPaginator,
    GetKeyPairsPaginator,
    GetLoadBalancersPaginator,
    GetOperationsPaginator,
    GetRelationalDatabaseBlueprintsPaginator,
    GetRelationalDatabaseBundlesPaginator,
    GetRelationalDatabaseEventsPaginator,
    GetRelationalDatabaseParametersPaginator,
    GetRelationalDatabaseSnapshotsPaginator,
    GetRelationalDatabasesPaginator,
    GetStaticIpsPaginator,
)

client: LightsailClient = boto3.client("lightsail")

# Explicit type annotations are optional here
# Type should be correctly discovered by mypy and IDEs
# VSCode requires explicit type annotations
get_active_names_paginator: GetActiveNamesPaginator = client.get_paginator("get_active_names")
get_blueprints_paginator: GetBlueprintsPaginator = client.get_paginator("get_blueprints")
get_bundles_paginator: GetBundlesPaginator = client.get_paginator("get_bundles")
get_cloud_formation_stack_records_paginator: GetCloudFormationStackRecordsPaginator = client.get_paginator("get_cloud_formation_stack_records")
get_disk_snapshots_paginator: GetDiskSnapshotsPaginator = client.get_paginator("get_disk_snapshots")
get_disks_paginator: GetDisksPaginator = client.get_paginator("get_disks")
get_domains_paginator: GetDomainsPaginator = client.get_paginator("get_domains")
get_export_snapshot_records_paginator: GetExportSnapshotRecordsPaginator = client.get_paginator("get_export_snapshot_records")
get_instance_snapshots_paginator: GetInstanceSnapshotsPaginator = client.get_paginator("get_instance_snapshots")
get_instances_paginator: GetInstancesPaginator = client.get_paginator("get_instances")
get_key_pairs_paginator: GetKeyPairsPaginator = client.get_paginator("get_key_pairs")
get_load_balancers_paginator: GetLoadBalancersPaginator = client.get_paginator("get_load_balancers")
get_operations_paginator: GetOperationsPaginator = client.get_paginator("get_operations")
get_relational_database_blueprints_paginator: GetRelationalDatabaseBlueprintsPaginator = client.get_paginator("get_relational_database_blueprints")
get_relational_database_bundles_paginator: GetRelationalDatabaseBundlesPaginator = client.get_paginator("get_relational_database_bundles")
get_relational_database_events_paginator: GetRelationalDatabaseEventsPaginator = client.get_paginator("get_relational_database_events")
get_relational_database_parameters_paginator: GetRelationalDatabaseParametersPaginator = client.get_paginator("get_relational_database_parameters")
get_relational_database_snapshots_paginator: GetRelationalDatabaseSnapshotsPaginator = client.get_paginator("get_relational_database_snapshots")
get_relational_databases_paginator: GetRelationalDatabasesPaginator = client.get_paginator("get_relational_databases")
get_static_ips_paginator: GetStaticIpsPaginator = client.get_paginator("get_static_ips")
```







### Typed dictionations

`mypy_boto3_lightsail.type_defs` module contains structures and shapes assembled
to typed dictionaries for additional type checking.

```python
from mypy_boto3_lightsail.type_defs import (
    AddOnRequestTypeDef,
    AddOnTypeDef,
    AlarmTypeDef,
    AllocateStaticIpResultTypeDef,
    AttachCertificateToDistributionResultTypeDef,
    AttachDiskResultTypeDef,
    AttachedDiskTypeDef,
    AttachInstancesToLoadBalancerResultTypeDef,
    AttachLoadBalancerTlsCertificateResultTypeDef,
    AttachStaticIpResultTypeDef,
    AutoSnapshotAddOnRequestTypeDef,
    AutoSnapshotDetailsTypeDef,
    AvailabilityZoneTypeDef,
    BlueprintTypeDef,
    BundleTypeDef,
    CacheBehaviorPerPathTypeDef,
    CacheBehaviorTypeDef,
    CacheSettingsTypeDef,
    CertificateSummaryTypeDef,
    CertificateTypeDef,
    CloseInstancePublicPortsResultTypeDef,
    CloudFormationStackRecordSourceInfoTypeDef,
    CloudFormationStackRecordTypeDef,
    ContactMethodTypeDef,
    CookieObjectTypeDef,
    CopySnapshotResultTypeDef,
    CreateCertificateResultTypeDef,
    CreateCloudFormationStackResultTypeDef,
    CreateContactMethodResultTypeDef,
    CreateDiskFromSnapshotResultTypeDef,
    CreateDiskResultTypeDef,
    CreateDiskSnapshotResultTypeDef,
    CreateDistributionResultTypeDef,
    CreateDomainEntryResultTypeDef,
    CreateDomainResultTypeDef,
    CreateInstancesFromSnapshotResultTypeDef,
    CreateInstanceSnapshotResultTypeDef,
    CreateInstancesResultTypeDef,
    CreateKeyPairResultTypeDef,
    CreateLoadBalancerResultTypeDef,
    CreateLoadBalancerTlsCertificateResultTypeDef,
    CreateRelationalDatabaseFromSnapshotResultTypeDef,
    CreateRelationalDatabaseResultTypeDef,
    CreateRelationalDatabaseSnapshotResultTypeDef,
    DeleteAlarmResultTypeDef,
    DeleteAutoSnapshotResultTypeDef,
    DeleteCertificateResultTypeDef,
    DeleteContactMethodResultTypeDef,
    DeleteDiskResultTypeDef,
    DeleteDiskSnapshotResultTypeDef,
    DeleteDistributionResultTypeDef,
    DeleteDomainEntryResultTypeDef,
    DeleteDomainResultTypeDef,
    DeleteInstanceResultTypeDef,
    DeleteInstanceSnapshotResultTypeDef,
    DeleteKeyPairResultTypeDef,
    DeleteKnownHostKeysResultTypeDef,
    DeleteLoadBalancerResultTypeDef,
    DeleteLoadBalancerTlsCertificateResultTypeDef,
    DeleteRelationalDatabaseResultTypeDef,
    DeleteRelationalDatabaseSnapshotResultTypeDef,
    DestinationInfoTypeDef,
    DetachCertificateFromDistributionResultTypeDef,
    DetachDiskResultTypeDef,
    DetachInstancesFromLoadBalancerResultTypeDef,
    DetachStaticIpResultTypeDef,
    DisableAddOnResultTypeDef,
    DiskInfoTypeDef,
    DiskMapTypeDef,
    DiskSnapshotInfoTypeDef,
    DiskSnapshotTypeDef,
    DiskTypeDef,
    DistributionBundleTypeDef,
    DomainEntryTypeDef,
    DomainTypeDef,
    DomainValidationRecordTypeDef,
    DownloadDefaultKeyPairResultTypeDef,
    EnableAddOnResultTypeDef,
    ExportSnapshotRecordSourceInfoTypeDef,
    ExportSnapshotRecordTypeDef,
    ExportSnapshotResultTypeDef,
    GetActiveNamesResultTypeDef,
    GetAlarmsResultTypeDef,
    GetAutoSnapshotsResultTypeDef,
    GetBlueprintsResultTypeDef,
    GetBundlesResultTypeDef,
    GetCertificatesResultTypeDef,
    GetCloudFormationStackRecordsResultTypeDef,
    GetContactMethodsResultTypeDef,
    GetDiskResultTypeDef,
    GetDiskSnapshotResultTypeDef,
    GetDiskSnapshotsResultTypeDef,
    GetDisksResultTypeDef,
    GetDistributionBundlesResultTypeDef,
    GetDistributionLatestCacheResetResultTypeDef,
    GetDistributionMetricDataResultTypeDef,
    GetDistributionsResultTypeDef,
    GetDomainResultTypeDef,
    GetDomainsResultTypeDef,
    GetExportSnapshotRecordsResultTypeDef,
    GetInstanceAccessDetailsResultTypeDef,
    GetInstanceMetricDataResultTypeDef,
    GetInstancePortStatesResultTypeDef,
    GetInstanceResultTypeDef,
    GetInstanceSnapshotResultTypeDef,
    GetInstanceSnapshotsResultTypeDef,
    GetInstancesResultTypeDef,
    GetInstanceStateResultTypeDef,
    GetKeyPairResultTypeDef,
    GetKeyPairsResultTypeDef,
    GetLoadBalancerMetricDataResultTypeDef,
    GetLoadBalancerResultTypeDef,
    GetLoadBalancersResultTypeDef,
    GetLoadBalancerTlsCertificatesResultTypeDef,
    GetOperationResultTypeDef,
    GetOperationsForResourceResultTypeDef,
    GetOperationsResultTypeDef,
    GetRegionsResultTypeDef,
    GetRelationalDatabaseBlueprintsResultTypeDef,
    GetRelationalDatabaseBundlesResultTypeDef,
    GetRelationalDatabaseEventsResultTypeDef,
    GetRelationalDatabaseLogEventsResultTypeDef,
    GetRelationalDatabaseLogStreamsResultTypeDef,
    GetRelationalDatabaseMasterUserPasswordResultTypeDef,
    GetRelationalDatabaseMetricDataResultTypeDef,
    GetRelationalDatabaseParametersResultTypeDef,
    GetRelationalDatabaseResultTypeDef,
    GetRelationalDatabaseSnapshotResultTypeDef,
    GetRelationalDatabaseSnapshotsResultTypeDef,
    GetRelationalDatabasesResultTypeDef,
    GetStaticIpResultTypeDef,
    GetStaticIpsResultTypeDef,
    HeaderObjectTypeDef,
    HostKeyAttributesTypeDef,
    ImportKeyPairResultTypeDef,
    InputOriginTypeDef,
    InstanceAccessDetailsTypeDef,
    InstanceEntryTypeDef,
    InstanceHardwareTypeDef,
    InstanceHealthSummaryTypeDef,
    InstanceNetworkingTypeDef,
    InstancePortInfoTypeDef,
    InstancePortStateTypeDef,
    InstanceSnapshotInfoTypeDef,
    InstanceSnapshotTypeDef,
    InstanceStateTypeDef,
    InstanceTypeDef,
    IsVpcPeeredResultTypeDef,
    KeyPairTypeDef,
    LightsailDistributionTypeDef,
    LoadBalancerTlsCertificateDomainValidationOptionTypeDef,
    LoadBalancerTlsCertificateDomainValidationRecordTypeDef,
    LoadBalancerTlsCertificateRenewalSummaryTypeDef,
    LoadBalancerTlsCertificateSummaryTypeDef,
    LoadBalancerTlsCertificateTypeDef,
    LoadBalancerTypeDef,
    LogEventTypeDef,
    MetricDatapointTypeDef,
    MonitoredResourceInfoTypeDef,
    MonthlyTransferTypeDef,
    OpenInstancePublicPortsResultTypeDef,
    OperationTypeDef,
    OriginTypeDef,
    PaginatorConfigTypeDef,
    PasswordDataTypeDef,
    PeerVpcResultTypeDef,
    PendingMaintenanceActionTypeDef,
    PendingModifiedRelationalDatabaseValuesTypeDef,
    PortInfoTypeDef,
    PutAlarmResultTypeDef,
    PutInstancePublicPortsResultTypeDef,
    QueryStringObjectTypeDef,
    RebootInstanceResultTypeDef,
    RebootRelationalDatabaseResultTypeDef,
    RegionTypeDef,
    RelationalDatabaseBlueprintTypeDef,
    RelationalDatabaseBundleTypeDef,
    RelationalDatabaseEndpointTypeDef,
    RelationalDatabaseEventTypeDef,
    RelationalDatabaseHardwareTypeDef,
    RelationalDatabaseParameterTypeDef,
    RelationalDatabaseSnapshotTypeDef,
    RelationalDatabaseTypeDef,
    ReleaseStaticIpResultTypeDef,
    RenewalSummaryTypeDef,
    ResetDistributionCacheResultTypeDef,
    ResourceLocationTypeDef,
    ResourceRecordTypeDef,
    SendContactMethodVerificationResultTypeDef,
    StartInstanceResultTypeDef,
    StartRelationalDatabaseResultTypeDef,
    StaticIpTypeDef,
    StopInstanceResultTypeDef,
    StopRelationalDatabaseResultTypeDef,
    TagResourceResultTypeDef,
    TagTypeDef,
    TestAlarmResultTypeDef,
    UnpeerVpcResultTypeDef,
    UntagResourceResultTypeDef,
    UpdateDistributionBundleResultTypeDef,
    UpdateDistributionResultTypeDef,
    UpdateDomainEntryResultTypeDef,
    UpdateLoadBalancerAttributeResultTypeDef,
    UpdateRelationalDatabaseParametersResultTypeDef,
    UpdateRelationalDatabaseResultTypeDef,
)

def get_structure() -> AddOnTypeDef:
    return {
      ...
    }
```
